问题是:我需要使用失败消息退出测试。使用Microsoft.VisualStudio.TestTools.UnitTesting
Assert.Fail("message");
通过try catch捕获。如何使用无法捕获的failer退出测试?
说我的测试里面有这样的内容:...remoteServerEventHandler(e => /*some logic */ Assert.Fail("message"))
但它通过serverEventHandler进行处理,而我只想在测试中退出。
答案 0 :(得分:1)
在catch块中,最后你应该写throw
,它会在调用函数或下一个块执行时重新抛出相同的异常。
答案 1 :(得分:1)
检查异常的类型,如果是断言异常,则重新抛出异常。
try
{
// ...
Assert.Fail("message");
// ...
}
catch (Exception ex)
{
if (ex is AssertFailedException)
{
throw;
}
}
代码假设您正在使用MSTest。如果您使用的是NUnit,请将AssertFailedException
更改为AssertionException
。