Cucumber 在重新运行失败的方案后,如何删除报告中的重复方案?
我使用cucumber6.6.0和extentreports-cucumber6-Adapter2.4.0生成报告。pom.xml如下所示:Cucumber 在重新运行失败的方案后,如何删除报告中的重复方案?,cucumber,testng,extentreports,Cucumber,Testng,Extentreports,我使用cucumber6.6.0和extentreports-cucumber6-Adapter2.4.0生成报告。pom.xml如下所示: <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>6.6.0</version>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>tech.grasshopper</groupId>
<artifactId>extentreports-cucumber6-adapter</artifactId>
<version>2.4.0</version>
<scope>test</scope>
</dependency>
onFinish()
公共类TestngListener扩展了TestListenerAdapter{
@凌驾
公共void onFinish(ITestContext testContext){
super.onFinish(testContext);
迭代器listOfFailedTests=testContext.getFailedTests().getAllResults().Iterator();
while(listOfFailedTests.hasNext()){
ITestResult failedTest=listOfFailedTests.next();
ITestNGMethod=failedTest.getMethod();
if(testContext.getFailedTests().getResults(method).size()>1){
listOfFailedTests.remove();
}else if(testContext.getPassedTests().getResults(method).size()>0){
listOfFailedTests.remove();
}
}
}
}
然后我在两个功能中运行了两个场景,没有重新运行,报告显示:2个功能失败,2个场景失败
但是如果我重新运行失败的,它将显示:2个功能失败,4个场景失败
那个么,在重新运行失败的场景之后,如何删除报告中的重复场景呢?谢谢你的帮助
public class RetryListener implements IAnnotationTransformer {
@Override
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor,
Method testMethod) {
IRetryAnalyzer retry = annotation.getRetryAnalyzer();
if (retry == null) {
annotation.setRetryAnalyzer(Retry.class);
}
}
}
public class TestngListener extends TestListenerAdapter {
@Override
public void onFinish(ITestContext testContext) {
super.onFinish(testContext);
Iterator<ITestResult> listOfFailedTests = testContext.getFailedTests().getAllResults().iterator();
while (listOfFailedTests.hasNext()) {
ITestResult failedTest = listOfFailedTests.next();
ITestNGMethod method = failedTest.getMethod();
if (testContext.getFailedTests().getResults(method).size() > 1) {
listOfFailedTests.remove();
}else if(testContext.getPassedTests().getResults(method).size() > 0) {
listOfFailedTests.remove();
}
}
}
}