0
我有这样一个测试:重新运行TestNG的测试导致测试运行永远
public class Test1 extends AbstractTest{
@Test(retryAnalyzer=Retry.class)
public void test(){
System.out.println(this.getClass().getName() + " running");
Assert.fail();
}
我有一个重试类是这样的:
public class Retry implements IRetryAnalyzer{
private int retryCount = 0;
private int maxRetryCount = 3;
public boolean retry(ITestResult result) {
if (retryCount < maxRetryCount) {
System.out.println("Retrying test "
+ result.getName() + " with status "
+ getResultStatusName(result.getStatus())
+ " for the " + (retryCount+1) + " time(s).");
retryCount++;
return true;
}
return false;
}
public String getResultStatusName(int status) {
String resultName = null;
if(status==1)
resultName = "SUCCESS";
if(status==2)
resultName = "FAILURE";
if(status==3)
resultName = "SKIP";
return resultName;
}
}
当我运行测试,它无限期地重复,给这个作为控制台输出:
tests.Test1 running
Retrying test test with status FAILURE for the 1 time(s).
tests.Test1 running
Retrying test test with status FAILURE for the 2 time(s).
Retrying test test with status FAILURE for the 3 time(s).
tests.Test1 running
tests.Test1 running
tests.Test1 running
tests.Test1 running
tests.Test1 running
tests.Test1 running
tests.Test1 running
tests.Test1 running
,...等
为什么第二次运行失败?为什么它无限期地运行?我如何使它具有所需的运行行为,然后重试最多3次或多次我设置MaxRetryCount?
你使用哪个版本?尝试最新的,因为它应该工作:https://github.com/cbeust/testng/blob/master/src/test/java/test/retryAnalyzer/RetryAnalyzerTest.java – juherr
6.8.21是版本。我会检查更新的版本。 – item5
这工作。如果您将此作为答案,我会将其标记为已接受。非常感谢。 – item5