如何在测试失败后停止运行TestNG
我正在尝试用TestNG编写一个测试方法,失败后,整个测试套件将停止运行。
@Test
public void stopTestingIfThisFailed() throws Exception
{
someTestStesp();
if (softAsserter.isOneFailed()) {
asserter.fail("stopTestingIfThisFailed test Failed");
throw new Exception("Test can't continue, fail here!");
}
}
正在引发异常,但其他测试方法正在运行。
如何解决此问题?
解决方案
我是这样解决问题的:在一定不能失败的测试之后-我正在将数据写入临时文本文件。
稍后,在下一个测试中,我在@BeforeClass中添加了代码,用于检查前面提到的文本文件中的数据。如果找到显示停止程序,我将终止当前进程。如果"不能"测试实际失败:
public static void saveShowStopper() {
try {
General.createFile("ShowStopper","tempShowStopper.txt");
} catch (ParseException e) {
e.printStackTrace();
}
}
@BeforeClass验证代码:
@BeforeClass(alwaysRun = true)
public void beforeClass(ITestContext testContext, @Optional String step, @Optional String suiteLoopData,
@Optional String group) throws Exception
{
boolean wasShowStopperFound = APIUtils.loadShowStopper();
if (wasShowStopperFound){
Thread.currentThread().interrupt();
return;
}
}
相关文章