在TestNG/Selenium中自动重新启动失败的测试用例
我使用Java中的SeleniumWebDriver和TestNG来运行X数量的测试用例 我想要的是,任何测试用例一旦失败就会自动重新启动(无论是从开始还是从失败点) 我知道TestNG框架有以下方法在TestNG/Selenium中自动重新启动失败的测试用例,selenium,testng,restart,testcase,Selenium,Testng,Restart,Testcase,我使用Java中的SeleniumWebDriver和TestNG来运行X数量的测试用例 我想要的是,任何测试用例一旦失败就会自动重新启动(无论是从开始还是从失败点) 我知道TestNG框架有以下方法 @Override public void onTestFailure(ITestResult tr) { log("F"); } 但我不知道如何找出它是哪个测试用例,然后如何重新启动它。来自testng.org 每次套件中的测试失败时,TestNG都会在输出目录中创建一个名为T
@Override
public void onTestFailure(ITestResult tr) {
log("F");
}
但我不知道如何找出它是哪个测试用例,然后如何重新启动它。来自testng.org
每次套件中的测试失败时,TestNG都会在输出目录中创建一个名为TestNG-failed.xml的文件。此XML文件包含仅重新运行这些失败的方法所需的信息,允许您快速复制失败,而无需运行整个测试。
如果您想在失败之后重新运行测试,则需要调用失败的方法。您可以从ITestResult对象获取该方法名称
如果希望同时重新运行所有失败的测试用例,那么可以在第一次执行后将testng-failed.xml作为输入xml 我想看一个包含实际代码的示例,在这里找到了它: 观察以下测试如何在故障发生后重新运行一次
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
}
}
import org.testng.Assert;
导入org.testng.IRetryAnalyzer;
导入org.testng.ITestResult;
导入org.testng.annotations.Test;
公共类重试实现IRetryAnalyzer{
private int retryCount=0;
private int maxRetryCount=1;
公共布尔重试(ITestResult结果){
if(retryCount
我希望像它们失败一样运行它们。好的,我有一个失败的测试和它的名字,我如何重新开始测试?没关系..我得到了..@WaqasKhan。。。请张贴解决方案,如果你有一个。我知道这仍然是一个老问题。。。