如何在故障发生时退出测试

本文关键字:退出 测试 故障 | 更新日期: 2023-09-27 18:25:42

问题是:我需要退出带有失败消息的测试。使用Microsoft.VisualStudio.TestTools.UnitTesting Assert.Fail("message");通过try-catch被捕获。如何使用无法捕获的故障退出测试?

假设我的测试内部有这样的东西:...remoteServerEventHandler(e => /*some logic */ Assert.Fail("message")),但它通过serverEventHandler处理,而我只想在测试失败时退出。

如何在故障发生时退出测试

在catch块中,最后应该写入throw,它将在调用函数或下一个执行块中重新抛出相同的异常。

检查异常的类型,如果它是断言异常,则重新抛出。

try
{
    // ...
    Assert.Fail("message");
    // ...
}
catch (Exception ex)
{
    if (ex is AssertFailedException)
    {
        throw;
    }
}

代码假设您使用的是MSTest。如果使用NUnit,请将AssertFailedException更改为AssertionException