testng对失败的测试用例实时重跑,有下面几个要求:
1.测试用例运行失败,Listenser监听到失败后立即重跑
2.测试用例通过dependsOnMethods/dependsOnGroupsb标记依赖的测试用例重跑运行成功后,该测试用例可以继续运行
3.对于重跑多次的测试用例,只记录最后一次成功的记录
一 测试用例重跑
重跑原理
IRetryAnalyzer retryAnalyzer = testMethod.getRetryAnalyzer();
boolean willRetry = retryAnalyzer != null && status == ITestResult.FAILURE &&failure.instances != null && retryAnalyzer.retry(testResult);
if (willRetry) { resultsToRetry.add(testResult); failure.count++; failure.instances.add(testResult.getInstance());
testResult.setStatus(ITestResult.SKIP);
} else {
testResult.setStatus(status); if (status == ITestResult.FAILURE && !handled) { handleException(ite, testMethod, testResult, failure.count++);
}
设置重试的重跑次数
重跑的实例