即使周围有捕获,如何退出测试?

时间:2013-07-31 09:34:20

标签: c# unit-testing mstest

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

说我的测试里面有这样的内容:...remoteServerEventHandler(e => /*some logic */ Assert.Fail("message"))但它通过serverEventHandler进行处理,而我只想在测试中退出。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

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