5

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

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

4 回答 4

3

如果

TestContext.CurrentContext.Result 

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

TestExecutionContext.CurrentContext.CurrentResult

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

于 2016-04-07T18:51:29.637 回答
1

您好,不确定您是否找到了解决此问题的方法。但这是我对此的回答。使用 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)
于 2016-02-12T13:01:58.927 回答
0

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

于 2013-02-25T10:20:28.977 回答
0

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

于 2013-02-25T15:40:48.547 回答