2013-02-25 41 views
2

嗨消息我想​​記錄測試失敗的消息,我知道它可以檢查在如何讓測試失敗在NUnit的TearDown中

TearDown 

狀態使用以下

TestContext.CurrentContext.Result.Status.ToString(); 

是可能在TearDown中獲得測試失敗的原因。有些事情如下

Expected: True 
But was: False 

at NUnit.Framework.Assert.That(Object actual, IResolveConstraint expression, String message, Object[] args) 
     at NUnit.Framework.Assert.IsTrue(Boolean condition) 
     at Test.FileSystemTests.QuoteFiles() in ExampleTests.cs: line 57 

回答

0

在你的拆解中需要一個狀態是一個testsmell的指示。拆卸應該隨時工作,而不依賴於單元測試的結果。我只是把你的系統與你的單元測試之前的狀態相提並論。您可以添加嘗試,最後添加到您的拆卸來清理垃圾。然而,取決於一個斷言(以及更多)會使你的拆卸代碼變得複雜,這是你現在想要在單元測試中所做的事情。

+1

事情是我用拆解寫入Excel文件,我這樣做,因爲我使用硒自動化來測試一個Web應用程序,我只是想知道哪個斷言失敗或其他測試失敗,因爲它會在excel中查看測試失敗的原因,而不是在Excel中只看到測試失敗的消息。嘗試抓住對我來說不是很好的選擇。謝謝你 – 2013-02-25 10:33:16

0

您好,我不確定您是否有解決此問題的解決方案。但這是我的答案。 使用NUnit 3.0可以低於線實現這個...

TestContext.CurrentContext.Result.Outcome.Status; (For test Execution Status) 

TestContext.CurrentContext.Result.StackTrace; (For Stack Trace Message) 

TestContext.CurrentContext.Result.Message; (For Test Result Message) 
0

如果

TestContext.CurrentContext.Result 

不包含你正在尋找的值,你也可以嘗試

TestExecutionContext.CurrentContext.CurrentResult 

這在TearDown以及其他方法中適用於NUnit 3.0。

相關問題