2012-11-27 55 views
4

我們有幾個單元測試,我們在與外部服務集成時使用。這些服務可能不穩定,並且它們不在我們的控制之下,因此有必要將它們從我們的日常構建中刪除。如何避免在mstest中使用忽略屬性運行測試?

由於通常的單元測試是作爲門控簽入的一部分運行的,所以我們已經在單獨的程序集中進行了集成測試。

儘管如此,我們仍然希望作爲日常構建的一部分運行一些集成測試,因此我們無法從日常構建中完全刪除程序集。

我試圖刪除[TestClass]屬性,並在VS2012內部正常工作。但是當我們簽入並且有TFS(2010)來構建和運行測試時,我得到了下面的錯誤。

[errormessage] = UTA004:非法使用Test.TestMethod上的屬性。 TestMethodAttribute只能在使用TestClass屬性標記的類中定義。

任何人有一個想法如何完全刪除測試運行? [Ignore]不會這樣做,那麼我的測試運行會混雜在關於忽略測試的警告中。

回答

4

爲什麼不使用TestCategoryAttribute來修飾您的集成測試。

例如讓你的測試是這樣的:

[TestClass] 
public class Tests 
{ 
    [TestMethod] 
    public void AtomicTest 
    { 
     Assert.IsTrue(true); 
    } 

    [TestMethod, TestCategory("Integration")] 
    public void IntegrationTest 
    { 
     Assert.IsFalse(false); 
    } 
} 

,然後配置你的TFS建立只運行那些你感興趣的是:

+0

這是一個好主意,但缺點是TestCategory只是po可以設置TestMethod。最好在TestClass上設置TestCategory。 – Per

相關問題