如何在NUnit TearDown中获取测试失败消息

时间:2013-02-25 10:11:46

标签: c# nunit

您好我想记录测试失败的消息,我知道可以检查

中的状态
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

4 个答案:

答案 0 :(得分:1)

如果

TestContext.CurrentContext.Result 

不包含您​​要查找的值,您也可以尝试

TestExecutionContext.CurrentContext.CurrentResult

这对我来说在TearDown中使用NUnit 3.0以及其他方法。

答案 1 :(得分:0)

在拆解中需要一个状态表明测试是正常的。拆卸应该可以随时工作,而不依赖于单元测试的结果。我只是将您的系统置于与单元测试之前相同的状态。你可以添加尝试,最后到你的拆解来清理混乱。但是,根据一个断言(以及稍后的断言)将使您的拆卸代码变得复杂,这是您现在在单元测试中所需要的。

答案 2 :(得分:0)

这个问题:NUnit: Accessing the Failure Message in TearDown()可能对您有所帮助。这似乎与意图相似。

答案 3 :(得分: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)