我正在使用 IRetryAnalyzer 界面再次运行失败的测试用例。如果我的TestNG XML文件中只有一个Test,它可以正常工作,但是如果我的XML文件中有多个测试,它只适用于第一次测试。
根本原因:第二次测试的retryCount设置为1,我不知道如何重置它。
现有未解决的问题: https://github.com/cbeust/testng/issues/1241
RetryAnalyzer.java
public class RetryAnalyzer implements IRetryAnalyzer {
private int retryCount = 0;
private int maxRetryCount = 1;
public boolean retry(ITestResult result) {
if (retryCount < maxRetryCount) {
retryCount++;
return true;
}
return false;
}
}
AnnotationTransformer.java
public class AnnotationTransformer implements IAnnotationTransformer {
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
annotation.setRetryAnalyzer(RetryAnalyzer.class); //to enable for all the methods.
}
}
TestNG.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="BrowserStack" >
<listeners>
<listener class-name="uk.co.gaurang.libs.ResultListener" />
<listener class-name="uk.co.gaurang.libs.AnnotationTransformer" />
</listeners>
<test name="IPhone6S">
<classes>
<class name="uk.co.gaurang.tests.Demo"/>
</classes>
</test>
<test name="IPhone6SPlus">
<classes>
<class name="uk.co.gaurang.tests.Demo"/>
</classes>
</test>
</suite>