2014-02-19 106 views
12

我正在使用nunit爲某些類進行一些測試。Nunit基礎類與普通測試

有幾個操作對所有測試類都很常見,但需要不同的參數才能工作。

因此,我在基類中添加了測試,並在基類中添加了虛擬方法來提供參數。

在派生的測試類中,我重寫了虛擬方法來爲基類中的測試提供特定的參數。

現在我的問題是,我希望基類中的測試只能從派生類中執行。我目前使用基類的忽略屬性來忽略測試,但是這會在測試運行時引發一些警告,並且如果存在一些被忽略的測試,則存在不允許我將更改提交給svn的策略。

那麼如何才能在派生類中的基類中運行測試而不使用基類的ignore屬性。

回答

16

您應該能夠將您的基類標記爲抽象類,這將停止nunit在該類中運行測試 - 這意味着您不再需要ignore屬性。

namespace MyTests 
{ 
    [TestFixture] 
    public abstract class BaseTestClass 
    { 
     [Test] 
     public void CommonTest() 
     { 

     } 
    } 

    [TestFixture] 
    public class TestClass1 : BaseTestClass 
    { 
     [Test] 
     public void OtherTest1() 
     { 

     } 
    } 

    [TestFixture] 
    public class TestClass2 : BaseTestClass 
    { 
     [Test] 
     public void OtherTest2() 
     { 

     } 
    } 
} 
+0

不可思議的,它似乎很簡單。我怎麼可能錯過了它。如果它是一個抽象類,Nunit無法直接實例化它並運行測試。 – Alecu