2017-02-01 46 views
3

說,我們有以下的單元測試:使NUnit的失敗上無效的測試參數

[Test] 
public void OneAndOneTest(int one) 
{ 
    Assert.That(1 + one, Is.EqualTo(2)); 
} 

編譯器將接受該代碼。但是測試本身是不正確的,因爲它應該是[TestCase(1)]而不是[test]。當用Nunit專門運行這個測試時,它會給出一個錯誤,說有一個參數不匹配。但是,當我在解決方案中運行所有測試時,我會得到一個「跳過」結果,而不是所述錯誤。

本地這是一個煩惱。但是在寫作時你應該測試過你的測試,所以它不是太大的問題。 (應該是這裏的關鍵字...)

但是,當Jenkins運行時說要測試​​它應該總是失敗。由於我工作的地方允許在某些情況下跳過測試,因此未能在跳過的測試上構建不成功。

問題與Nunit(我認爲)。我的本地系統和Jenkins都運行NUnit可執行文件並貫穿可執行文件的輸出。我的本地系統將它移植到Dot覆蓋中,而Jenkins將它轉儲到稍後在構建過程中分析的XML文件中。

長話短說:是存在的,與NUnit的,這是一種失敗運行在具有參數不正確的量

+0

您使用的是什麼版本的NUnit?我用NUnit 3.6試過同樣的事情,測試和總體結果都是「失敗」......這可能是NUnit的舊版本的問題嗎? –

+1

測試無效,應該給出錯誤而不是失敗。總體結果應該是失敗的。除非在NUnit的早期版本中認爲無效測試被跳過,否則不應該跳過它。要給出真正的答案,需要知道所涉及的框架和跑步者的版本。 – Charlie

+0

版本上的好點。在檢查時,我注意到我們正在運行一個令人驚訝的舊版本(2.6.4)。我會在今天晚些時候更新它,看看是否有幫助。 –

回答

1

問題是與NUnit的版本,一個或多個測試解決方案的所有測試時的構建,我試過用最新版本(3.6 NUnit的)和測試結果以及總的結果完全一樣的事情爲「失敗」,看到NUnit的控制檯輸出如下:

NUnit的控制檯亞軍3.6.0 版權所有(C)2017查理普爾 錯誤,故障和警告

1)無效:ConsoleApplication1.Program.add 方法具有非空返回值,但沒有結果預計
試運行總結 總體結果:失敗
測試計數:1,通過:0,失敗: 1,警告:0,不確定:0,跳過:0 失敗測試 - 失敗:0,錯誤:0,無效:1