2016-07-28 183 views
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?

+0

你使用哪个版本?尝试最新的,因为它应该工作:https://github.com/cbeust/testng/blob/master/src/test/java/test/retryAnalyzer/RetryAnalyzerTest.java – juherr

+0

6.8.21是版本。我会检查更新的版本。 – item5

+0

这工作。如果您将此作为答案,我会将其标记为已接受。非常感谢。 – item5

回答