gpt4 book ai didi

.net - NUnit - 测试失败后的清理

转载 作者:行者123 更新时间:2023-12-02 15:23:51 25 4
gpt4 key购买 nike

我们有一些访问数据库的 NUnit 测试。当其中一个失败时,它可能会使数据库处于不一致的状态 - 这不是问题,因为我们为每次测试运行重建数据库 - 但它可能导致其他测试在同一运行中失败。

是否可以检测到其中一项测试失败并执行某种清理?

我们不想在每个测试中编写清理代码,我们现在已经这样做了。我想在拆解中执行清理,但前提是测试失败,因为清理可能会很昂贵。

更新:澄清一下 - 我希望测试简单,并且不包含任何清理或错误处理逻辑。我也不想在每次测试运行时执行数据库重置 - 仅当测试失败时。这段代码可能应该在 Teardown 方法中执行,但我不知道有什么方法可以获取我们当前正在从失败或成功中拆除的测试的信息。

更新2:

        [Test]
public void MyFailTest()
{
throw new InvalidOperationException();
}

[Test]
public void MySuccessTest()
{
Assert.That(true, Is.True);
}

[TearDown]
public void CleanUpOnError()
{
if (HasLastTestFailed()) CleanUpDatabase();
}

我正在寻找 HasLastTestFailed() 的实现

最佳答案

自版本 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();
}
}

关于.net - NUnit - 测试失败后的清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com