我在带有TestNG的Java中使用Selenium webdriver,来运行X个测试用例。
我想要的是任何测试用例一旦失败就自动重新启动(从启动或从故障点开始)。
我知道TestNG框架具有以下方法
@Override public void onTestFailure(ITestResult tr) { log("F"); }
但是我不知道如何找出它是哪个测试用例,然后如何重新启动它。
我想查看其中包含实际代码的示例,并在此处找到它: 使用TestNg立即重新启动Test
观察一下,一旦发生故障,下面的测试将如何重新运行一次。
import org.testng.Assert; import org.testng.IRetryAnalyzer; import org.testng.ITestResult; import org.testng.annotations.Test; public class Retry implements IRetryAnalyzer { private int retryCount = 0; private int maxRetryCount = 1; public boolean retry(ITestResult result) { if (retryCount < maxRetryCount) { retryCount++; return true; } return false; } @Test(retryAnalyzer = Retry.class) public void testGenX() { Assert.assertEquals("james", "JamesFail"); // ListenerTest fails } @Test(retryAnalyzer = Retry.class) public void testGenY() { Assert.assertEquals("hello", "World"); // ListenerTest fails } }