如果testmethod中有任何异常,如何防止运行AfterTest方法?
public class TestAttribute : Attribute, ITestAction
{
public void BeforeTest(TestDetails testDetails)
{
// Run before test
// ....
}
public void AfterTest(TestDetails testDetails)
{
// don't run it if there is any exception
// how to check whether an exception is thrown from Nunit
// ...
}
public ActionTargets Targets { get; private set; }
}
[Test][TestAttribute]
public void TestMthod()
{
throw new Exception("test exception");
}
有没有办法知道在AfterTest方法中是抛出异常还是断言失败?
注意:我对异常的细节不感兴趣。
答案 0 :(得分:0)
如果在TestMthod中抛出异常,那么结果将是错误而不是失败,因此我相信您当前的代码块,您可以简单地利用这样的测试上下文:
public void AfterTest(TestDetails testDetails)
{
if(TestContext.CurrentContext.Result.State == TestState.Error)
{
return;
}
// don't run it if there is any exception
// how to check whether an exception is thrown from Nunit
// ...
}
如果您有兴趣了解实际结果字符串是什么,我认为您需要使用插件并实现eventlistener。
希望这有帮助