如何在测试失败后停止运行TestNG

2022-02-27 00:00:00 selenium java 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;
    }
}

相关文章