我們的團隊進行了數百次集成測試,它們擊中數據庫並驗證結果。我爲所有集成測試提供了兩個基類,一個用於僅檢索測試,另一個用於創建/更新/刪除測試。只能檢索的基類在TestFixtureSetup期間重新生成數據庫,因此它僅對每個測試類執行一次。 CUD基類在每次測試之前重新生成數據庫。每個存儲庫類都有自己相應的測試類。如你所想,這整件事情需要相當長的一段時間(接近7-8分鐘才能運行並快速增長)。將它作爲CI(CruiseControl.Net)的一部分運行並不成問題,但在本地運行需要很長時間,並且在提交代碼之前確實禁止運行它們。集成測試最佳實踐
我的問題是有沒有最佳實踐來幫助加快這些類型的集成測試的執行?
因爲我們使用了sqlite中不支持的某些特定於數據庫的功能(計算列等),所以我無法在內存中執行它們(la sqlite)。
此外,整個團隊必須能夠執行它們,因此,在SQL Server Express的本地實例上運行它們或者可能會出錯,除非連接字符串對於這些實例而言都是相同的。
你是如何在你的店裏完成這件事的?
謝謝!
+1這幾乎是我們在工作中所做的。在我們的CIS中,單元測試每天進行一次簽入和集成測試。 – mezoid 2009-08-25 14:53:17
我在哪裏工作,我們在每個構建上運行集成測試。您運行集成測試的頻率越高越好。 – 2009-08-25 14:58:34
@ Ken_Liu - 當然。通常情況下,將CI服務器上的可用cpu週期與每時每刻的提交數量進行平衡。這對每個開發團隊/環境都會有所不同。 – grenade 2009-08-25 15:01:39