我在Java Web應用程序中使用Selenium GUI測試。 由於這些測試實際上是客戶端,我們如何在運行測試後回滾數據庫?運行Selenium GUI測試後回滾數據庫
2
A
回答
1
什麼你叫Fixture Teardown Patterns後。由於您需要跟蹤測試中創建的所有資源,並在拆解過程中自動銷燬/釋放它們。我顯然不知道自己的框架,但運行測試
後這種情況下
數據庫回滾一個很好的候選人是Inline Teardown。在結果驗證後立即在測試方法結束時包含拆卸邏輯。像這樣:
1
我的猜測是你不能'回滾'數據庫,因爲web應用程序通常在請求之間提交事務。
您需要實現自己的自定義回滾。也許您可以爲每個測試創建一個新用戶,並在測試後刪除此用戶所做的任何更改。或者,也許你想實施command pattern。
您可能還會發現一個級聯刪除有用
1
最近我參加了一個談docker。演講者創建了一個用於演示目的的帶有mysql數據庫的碼頭容器。我馬上想着如何使用它來進行集成測試,因爲您可以用很少的努力創建一個乾淨的數據庫實例。
如果已經有一些最佳實踐,發現那些網站
- TestContainers我正在尋找 - 注意Temporary database containers鏈接
- Tutorial – Docker, JPA and Testing - 一個完整的例子
I'm在評估如何整合這一點的階段,但我相信這是我(希望你)所期待的。 工作流將是:
- 測試執行 從圖像與主數據空
- 填充數據庫(如有必要)
- 運行測試
- 開始搬運工容器
- 擲搬運工容器遠
0
謝謝你的建議。 我決定爲此使用mysqldump。在Ant中,備份並在每次批次測試之前和之後恢復測試數據庫。
相關問題
- 1. 如何針對測試數據庫運行Selenium測試?
- 2. 春季測試:在測試dao後回滾數據庫
- 3. Selenium GUI測試?
- 4. Selenium測試後的數據庫清理
- 5. Laravel測試數據庫不會回滾
- 6. 運行Selenium測試
- 7. Spring AbstractTransactionalDataSourceSpringContextTests - 在每次Junit測試後防止數據庫回滾
- 8. 單元測試後回滾數據庫更改流明
- 9. Liferay + Vaadin的Selenium gui測試
- 10. jenkins selenium不運行測試
- 11. 運行Selenium測試上GRID2
- 12. 對MongoDB數據庫中的測試數據運行node.js測試
- 13. NUnit在測試後回滾
- 14. 測試後彈簧測試不回滾
- 15. 測試db在每次運行後都不回滾
- 16. phpunit數據庫在拆解後測試
- 17. 軌道測試數據庫沒有清除一些運行後
- 18. 每次測試運行後重置數據庫
- 19. RSpec,水豚,JavaScript測試不正確回滾數據庫
- 20. 測試數據庫在運行初始測試後沒有刷新
- 21. 並行運行Selenium測試與水豚
- 22. 與NUnit3並行運行Selenium WebDriver測試
- 23. 如何回滾,重置或刪除Ecto測試數據庫?
- 24. 流星 - 與測試數據庫中運行封裝測試
- 25. 運行Rails測試而不丟棄測試數據庫
- 26. 使測試數據庫上運行Spring JUnit測試
- 27. CI +測試:針對數據庫運行單元測試
- 28. C#測試項目在測試運行前擦除數據庫
- 29. 使用PostgreSQL在SQLAlchemy測試中回滾數據庫事務
- 30. 測試數據庫中的行測試
謝謝,這些test_methods是相互依賴的?例如,在集成測試的情況下。 –
在這種情況下,'test_method's是單個測試中的步驟,但您可以根據需要對其進行修改,並將其視爲單個測試中的單個測試。所以這個概念適用於你。就像我說的 - 把它們想象成單獨的測試。 – ekostadinov