0

问题是:我需要退出测试并显示失败消息。usingMicrosoft.VisualStudio.TestTools.UnitTesting Assert.Fail("message");通过 try catch 被捕获。可以做些什么来退出无法捕获的失败者的测试?

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

4

2 回答 2

1

Check the type of exception and rethrow it if it is an assertion exception.

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

The code assumes you are using MSTest. Change AssertFailedException to AssertionException if you are using NUnit.

于 2013-07-31T10:12:32.447 回答
1

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

于 2013-07-31T09:36:45.393 回答