2017-02-20 130 views
0

我已经使用IRetryAnalyzer重新运行失败的测试用例。我还使用IAnnotationTransformer作为TestNg Listener。现在只有最后一次重新运行的测试用例在报告中失败了。以前的迭代即将跳过。我希望所有的迭代都会在报告中失败。重新运行失败的测试用例在testng报告中显示status ='Skipped'

下面是2类代码:

对于IAnnotationTransformer:

package com.TestNG; 

import java.lang.reflect.Constructor; 
import java.lang.reflect.Method; 
import org.testng.IAnnotationTransformer; 
import org.testng.IRetryAnalyzer; 
import org.testng.annotations.ITestAnnotation; 

public class RetryListener implements IAnnotationTransformer { 

@Override 
public void transform(ITestAnnotation testannotation, Class testClass, 
Constructor testConstructor, Method testMethod) { 
IRetryAnalyzer retry = testannotation.getRetryAnalyzer(); 

if (retry == null) { 
testannotation.setRetryAnalyzer(Retry.class); 
} 
} 

} 

对于IRetryAnalyzer:

package com.TestNG; 

import org.testng.IRetryAnalyzer; 
import org.testng.ITestResult; 

public class Retry implements IRetryAnalyzer { 
private int retryCount = 0; 
private int maxRetryCount = 2; 

@Override 
public boolean retry(ITestResult result) { 
if (retryCount < maxRetryCount) { 
retryCount++; 
return true; 
} 
return false; 
} 
} 

结果: Screenshot

回答

相关问题