2011-12-14 71 views
0

我在Visual Studio中創建了一些單元測試,我想創建一個基類,在我的應用程序中創建一組特定的測試數據,然後當測試運行中的最後一個單元測試完成時,自動清理測試數據。我可以處理數據的創建,我只是不知道是否可以告訴測試運行已完成。如何添加最後一次單元測試完成時觸發的事件?

換句話說:

  • UnitTest1和UnitTest2繼承UnitTestBaseCreateData(相反,他們可以在兩個UnitTest1和UnitTest2的構造函數的靜態方法的調用,用於創建測試數據)
  • UnitTest3和UnitTest4不需要創建數據。
  • 如果我選擇並運行UnitTests 1,2,3和4,測試數據將根據測試1的需求創建並在測試4完成後自動清理
  • 如果我選擇並運行UnitTests 3,和4,測試數據將不會被創建,清理代碼將不會運行。
  • 如果我只選擇並運行單元測試1,測試數據將按需創建,然後在測試4完成後清理。

我只是不知道是否有一些[TestRunCleanup()](類似於TestCleanup和ClassCleanup屬性)的方法獲得的屬性,我可以作爲一個鉤子使用,看看我是否有測試數據,我需要清理...

+0

什麼是反對票? – Daryl 2012-10-29 13:25:47

回答

2

您可以使用AssemblyCleanupAttribute。當一個方法用該屬性修飾時,MS Test將在當前測試運行中的所有測試(該組件)完成時執行該方法。

[AssemblyCleanup] 
    public static void AssemblyCleanup() 
    { 
     //Remove data here when necessary 
    } 
+0

這就是我正在尋找的東西......我正在通過一些主要的黑客來運行一個批處理文件,該文件執行一個powershell命令,然後調用一個C#方法。這正是我所期待的。 – Daryl 2011-12-16 14:12:33

相關問題