2015-02-06 36 views
0

我有幾個測試項目,其中一個有很多單元測試,都與做某些計算非常相關。運行全部單元測試需要很長時間。所以,我正在尋找一種方法來輕鬆地將測試分爲每晚單元測試和所有其他單元測試。我怎樣才能方便地指定哪些測試夾具和測試方法應該是每晚?換句話說,有沒有辦法將同一個項目中的測試拆分成單獨的程序集如何將相同項目單元測試分解爲單獨的程序集?

我已經想到的和到目前爲止已經試過:

  • 就在夜間測試手動,只有放在各自的項目中運行每晚的基礎上新項目。 這意味着我想在夜間或定期運行測試夾具時隨時在項目中移動文件,即不合需要。
  • 想出一個構建腳本,它可以在編譯時將這些測試分離爲單獨的項目。然後我會得到單獨的程序集。這看起來太複雜了,但也許它是唯一的選擇。

我很想能夠使用一個類屬性來指定哪些測試將在夜間運行,例如:

[TestClass, Nightly] 
public class MyTestClass { } 

任何想法?

回答

1

您可以根據需要爲同一解決方案提供儘可能多的單元測試項目。

如果你想要去單獨的項目(即構建系統只安裝運行從單獨的項目測試)我有新的項目從舊共享測試 - 創造新的項目,並從舊如添加文件「鏈接」(添加文件對話框的「打開」按鈕上有小選項)。

或者,您可以添加屬性到測試(即TestCategoryAttribute),並讓您的測試跑步者尊重這些。

+0

'TestCategoryAttribute'看起來很有前途。這是否有辦法在測試類級別上應用它,以便該類的所有測試方法都可以應用該類別? – William 2015-02-06 18:37:54

+1

@William - 不,它被標記爲「target = method」(請參閱​​MSDN鏈接)。我不知道teamcity runner允許什麼,但也許可以創建自定義屬性並對其進行過濾,或者僅通過測試名稱/類名稱進行過濾。 – 2015-02-06 18:52:37

相關問題