我们有一些访问数据库的NUnit测试.当其中一个失败时,它可能使数据库处于不一致状态 - 这不是问题,因为我们为每次测试运行重建数据库 - 但它可能导致其他测试在同一次运行中失败.
是否有可能检测到其中一个测试失败并执行某种清理?
我们不想在每个测试中编写清理代码,我们现在已经这样做了.我想在Teardown中进行清理,但只有在测试失败的情况下才能进行清理,因为清理可能很昂贵.
更新:澄清 - 我希望测试很简单,不包括任何清理或错误处理逻辑.我也不想在每次测试运行时执行数据库重置 - 仅在测试失败时.这个代码应该可以在Teardown方法中执行,但是我不知道有什么方法可以获取信息,如果测试我们目前正在从失败或成功中拆除.
Update2:
[Test]
public void MyFailTest()
{
throw new InvalidOperationException();
}
[Test]
public void MySuccessTest()
{
Assert.That(true, Is.True);
}
[TearDown]
public void CleanUpOnError()
{
if (HasLastTestFailed()) CleanUpDatabase();
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找HasLastTestFailed()的实现