2013-01-24 70 views
9

運行我有一個包含一些測試用例和一些普通的試驗基地測試類:NUnit的測試用例不是從繼承

[TestFixture] 
public abstract class TestBase 
{ 
    [TestCase(1)] 
    [TestCase(2)] 
    [TestCase(3)] 
    public void TestA(int value) 
    { 
    // Perform test 
    } 

    [Test] 
    public void TestB() 
    { 
    // Perform test 
    } 
} 

這些測試是從設置環境方式不同子類中運行。子類僅包含設置方法,不包含測試。

[TestFixture] 
public class LocalDatabaseTest : TestBase 
{ 
    [SetUp] 
    public void SetUp() 
    { 
    // Set up environment to use local db 
    } 
} 

我使用ReSharper 6.1.1000.82在LocalDatabaseTest中運行所有測試,但只運行普通測試。使用TestCase的測試沒有得到任何結果。如果我在TestBase類中的TestA上選擇Run All,則運行所有測試用例(包括其他子類)。我正在使用NUnit 2.6.2.12296。關於我做錯了什麼想法?

回答

7

你沒有做錯任何事。

如果你通過NUnit測試運行器打開你的測試DLL,你會看到所有的測試都運行成功。
(我剛剛用NUnit 2.6.2驗證了你的代碼)。

關於在Resharper上忽略參數化測試的原因:看起來Resharper測試運行器會導致這種行爲。
所以,我的建議是使用NUnit來運行參數化測試。

順便說一句,Resharper 7有更好的支持NUnit參數化測試。可能這個問題不會出現在最新的Resharper版本中。

+0

好吧,看起來像它的時間升級到ReSharper 7然後... :-) – Anlo

+2

這不是在VS 2012中固定7.1。但是,+1指出了。這讓我很害怕爲什麼它沒有理由顯示無結果 –