2015-11-03 40 views

回答

1

什麼你叫Fixture Teardown Patterns後。由於您需要跟蹤測試中創建的所有資源,並在拆解過程中自動銷燬/釋放它們。我顯然不知道自己的框架,但運行測試

後這種情況下

數據庫回滾一個很好的候選人是Inline Teardown。在結果驗證後立即在測試方法結束時包含拆卸邏輯。像這樣:

enter image description here

+0

謝謝,這些test_methods是相互依賴的?例如,在集成測試的情況下。 –

+0

在這種情況下,'test_method's是單個測試中的步驟,但您可以根據需要對其進行修改,並將其視爲單個測試中的單個測試。所以這個概念適用於你。就像我說的 - 把它們想象成單獨的測試。 – ekostadinov

1

我的猜測是你不能'回滾'數據庫,因爲web應用程序通常在請求之間提交事務。

您需要實現自己的自定義回滾。也許您可以爲每個測試創建一個新用戶,並在測試後刪除此用戶所做的任何更改。或者,也許你想實施command pattern

您可能還會發現一個級聯刪除有用

1

最近我參加了一個談docker。演講者創建了一個用於演示目的的帶有mysql數據庫的碼頭容器。我馬上想着如何使用它來進行集成測試,因爲您可以用很少的努力創建一個乾淨的數據庫實例。

如果已經有一些最佳實踐,發現那些網站

I'm在評估如何整合這一點的階段,但我相信這是我(希望你)所期待的。 工作流將是:

  1. 測試執行
  2. 從圖像與主數據空
  3. 填充數據庫(如有必要)
  4. 運行測試
  5. 開始搬運工容器
  6. 擲搬運工容器遠
0

謝謝你的建議。 我決定爲此使用mysqldump。在Ant中,備份並在每次批次測試之前和之後恢復測試數據庫。