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

Ana*_*d S 5 c# nunit

嗨,我想记录测试失败的消息,我知道可以检查状态

TearDown
Run Code Online (Sandbox Code Playgroud)

使用以下

TestContext.CurrentContext.Result.Status.ToString();
Run Code Online (Sandbox Code Playgroud)

可以在 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
Run Code Online (Sandbox Code Playgroud)

Eri*_*one 5

如果

TestContext.CurrentContext.Result 
Run Code Online (Sandbox Code Playgroud)

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

TestExecutionContext.CurrentContext.CurrentResult
Run Code Online (Sandbox Code Playgroud)

这对我在 NUnit 3.0 的 TearDown 以及其他方法中有效。


Pet*_*ter 0

在你的拆解中需要一个状态是一种测试的迹象。拆卸应该可以随时进行,而不依赖于单元测试的结果。我只是让您的系统处于与单元测试之前相同的状态。您可以将 attempts 和 finally 添加到拆卸中以清理混乱。然而,依赖一个断言(以及稍后更多)将使您的拆卸代码变得复杂,而这正是您现在在单元测试中想要的东西。