NUnit - 是否可以在TearDown中检查测试是否成功?

Geo*_*uer 26 .net c# nunit

我希望我的TearDown方法在应用某些逻辑之前检查先前的测试是否成功.是否有捷径可寻?

Rob*_*žan 31

Ran对类似SO问题的回答中已经解决了这个问题.引用冉:

从版本2.5.7开始,NUnit允许Teardown检测上次测试是否失败.新的TestContext类允许测试访问有关自身的信息,包括TestStauts.

有关更多详细信息,请参阅http://nunit.org/?p=releaseNotes&r=2.5.7

[TearDown]
public void TearDown()
{
    if (TestContext.CurrentContext.Result.Status == TestStatus.Failed)
    {
        PerformCleanUpFromTest();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在Nunit 3.x中,它是`if(TestContext.CurrentContext.Result.Outcome == ResultState.Failure)` (7认同)

小智 6

如果你想使用TearDown来检测NUnit 3.5的最后一次测试的状态,它应该是:

[TearDown]
 public void TearDown()
 {
   if (TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Failed)
   {
      //your code
   }
 }
Run Code Online (Sandbox Code Playgroud)