2011-11-03 73 views
3

我使用Visual Studio 2008和我想能夠分裂我的單元測試分爲兩組:如何分割單元測試成組

  1. 快速測試
  2. 更長的測試(即與互動數據庫)

我只能看到一個選項來運行全部或一個,也可以運行單元測試類中的所有測試。

當我想運行一個快速測試時,有什麼辦法可以將它們分開或指定要運行哪些測試?

感謝

回答

7

我會區分你的單元測試分組如下:

  1. 單元測試 - 測試單的方法/類,與存根dependenices。應該很快執行,因爲只有內部依賴關係。
  2. 集成測試 - 將兩個或更多組件一起測試,例如您的數據訪問類與實際支持的數據庫。這些通常很漫長,因爲您可能正在處理外部依賴項,如數據庫或Web服務。但是,這些仍然可以快速測試,具體取決於您要集成的組件。這裏的關鍵是測試的範圍與單元測試不同。

我會創建單獨的測試庫,即MyProj.UniTests.dll和MyProj.IntegrationTests.dll。這樣,您的單元測試庫將比您的集成測試具有更少的依賴關係。然後指定想要運行的測試組將很容易。

如果您正在使用類似的東西,在不同時間運行測試,您可以設置持續集成服務器,因爲知道組1比第二組快。例如,單元測試可以在將代碼簽入到存儲庫後立即運行,並且集成測試可以在一夜之間運行。很容易設置這樣的使用Team City

+0

我們使用MyProj.Tests.Unit和MyProj.Tests.Integration,這樣當我們部署時,我們可以忽略* .Tests。*。 –

8

如果你使用NUnit,你可以使用CategoryAttribute

MSTest中的等價物是TestCategory屬性 - 有關如何使用它的說明,請參閱here

+0

如果您碰巧使用JetBrains中的R#,您會得到這個很酷的「單元測試會話」窗口,您可以在其中按類別對測試進行分組和運行。 http://www.jetbrains.com/resharper/webhelp/Reference__Windows__Unit_Test_Sessions.html或在Visual Studio中使用內建的「文本資源管理器」窗口時檢查此項:http://blogs.msdn.com/b/visualstudioalm/archive/ 2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx –

1

有測試列表編輯器。我現在不在我的Visual Studio計算機,所以我只會指向this答案。

+1

我最終實現了這種方式 – ediblecode