2011-07-01 84 views
27

每個Assert輸出消息允許定義error message這將在斷言故障的情況下被打印出來,但我可以採用某種提供這將在成功的試運行的情況下,可以outputed消息?指定爲成功的測試用例

+0

我不知道如何做到這一點,但是,W你會需要嗎? 顯示錯誤堆棧跟蹤有一個問題;這可以幫助程序員更正 。但我沒有看到顯示定製成功消息的重點。 –

+0

對於一些測試案例,我想跟蹤這些信息,同時使用持續集成系統運行測試,持續集成系統會保留每個構建的日誌。另外,當我想看到一些測試運行信息時,我可以運行測試並在控制檯中查看此信息,而不是在斷點處處理或使用某些輸出,如日誌記錄或System.Diagnostics.Debug – sll

回答

22

可以使用Assert.Pass實用方法。

+0

太棒了!謝謝 – sll

+3

但是這會導致拋出一個SuccessException,導致測試失敗。這肯定會破壞目的? – Carl

+0

@Carl - 您正在使用哪種NUnit版本?哪個測試跑步者? –

0

你說你想你的持續集成環境中,該信息以供使用。推測你的CI環境使用NUnit-console Runner

如果是這樣的話,我建議利用從每個測試運行生成的XML輸出,並且其示例可以發現here

XML輸出包含了每一個測試結果。您尚未說明您正在使用哪個CI服務器,但應該直接在構建過程中構建一個步驟來導入此XML並將其用於您需要的統計信息。

+1

這正是我使用XML輸出所做的。但另外我想跟測試 – sll

+0

有一些消息有趣。你能給我舉一個有用的消息嗎?如果測試通過,消息可能總是一樣的......? – razlebe

+1

關注你的例子如果你喜歡 - ...,但也用於成功的測試 – sll

32

我只是用Console.WriteLine("Your message here");將被引導到NUnit的輸出,所以你可以看到測試通過的消息

+0

thanx you made my day :) – zzzuperfly

+0

似乎無法與集成到SharpDevelop中的NUnit版本一起使用。 –

+0

僅用於更新最後​​的信息...現在#develop不顯示控制檯輸出。 :-) –

0

您應該處理NUnit.Framework.SuccessException並打印消息:

try 
{ 
    // assert 
    Assert.Pass(sOutput); 
} 
catch (SuccessException ex) 
{ 
    Console.WriteLine(ex.Message); 
    return; 
} 

因此,你應該得到點擊輸出下輸出消息:

Test Output