Cucumber 在重新运行失败的方案后,如何删除报告中的重复方案?

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>

我使用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>

    <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();
            }
        }
    }
}