2012-02-11 59 views
2

所以,我寫了NUnit的2.6下一個 「測試」 測試:-)(使用2.6.0.12035版)帶有Result屬性的Nunit TestCase屬性是否不正確?

[TestCase(1, 2, Result = 3)] 
    [TestCase(3, 4, Result = 7)] 
    [TestCase(5, 6, Result = 11)] 
    public int Add_Test(int a, int b) 
    { 
     return a - b; 
    } 

接下來,我用ReSharper的6.1.37.86運行它。 Resharper表示三項測試都通過了。 比我試圖用nunit GUI運行測試 - nunit.exe。測試下降與奇怪的錯誤消息:「方法有非void返回值」。實際上,所有測試都會失敗,並出現意想不到的結果值。 此功能是否工作不正確,或者我做的是不正確的。錯誤? 順便說一句,下次我儘量不這樣做的結果集性能和它完美的作品既參賽者:

[TestCase(1, 2, 3)] 
    [TestCase(3, 4, 7)] 
    [TestCase(5, 6, 11)] 
    public void Add_Test1(int a, int b, int result) 
    { 
     Assert.AreEqual(result, a - b); 
    } 

回答

1

我得到同樣的問題NUnit的2.6.0.12035,不管我用NUnit.exe或NUnit的控制檯。可執行程序。

您的示例使用NUnit.exe 2.5.10可以正常工作。 (我的猜測是Resharper使用的是NUnit 2.5.10,因此測試通過。)

I reported the issue到NUnit討論組。

編輯:我的測試組件引用2.5.10版本的nunit.framework.dll中。如果我切換到使用2.6.0.12035版本,則測試將按照預期的方式運行,其中NUnit.exeNUnit-console.exe。我敢打賭你的問題是一樣的。

編輯2:它已提交作爲錯誤和fixed in the next release。如果您的單元測試庫鏈接到舊版本的Nunit.framework.dll,2.6中的測試運行程序不會再導致錯誤。