Cucumber重新运行失败的测试,并使用Cucumber 4.x的testNG runner共同记录结果

Cucumber重新运行失败的测试,并使用Cucumber 4.x的testNG runner共同记录结果,cucumber,Cucumber,我正在尝试执行第二轮仅运行失败的场景,以避免由于环境/网络/测试不稳定而出现错误警报。 我想知道是否有办法只运行一个maven命令来执行以下操作: 1.运行my runner配置中包含的所有场景 2.为此运行创建cucumber.json报告 3.创建失败方案的列表 4.运行失败场景的列表 5.根据第二次运行中失败测试的结果,更改第一次运行中创建的报告的结果,以便在最后,只有在两次运行中失败的场景被标记为失败,并且在第一次运行中失败的测试的最终报告中没有重复项(即第二次运行覆盖第一次运行的结果)

我正在尝试执行第二轮仅运行失败的场景,以避免由于环境/网络/测试不稳定而出现错误警报。 我想知道是否有办法只运行一个maven命令来执行以下操作: 1.运行my runner配置中包含的所有场景 2.为此运行创建cucumber.json报告 3.创建失败方案的列表 4.运行失败场景的列表 5.根据第二次运行中失败测试的结果,更改第一次运行中创建的报告的结果,以便在最后,只有在两次运行中失败的场景被标记为失败,并且在第一次运行中失败的测试的最终报告中没有重复项(即第二次运行覆盖第一次运行的结果)

我正在使用黄瓜4.4.0和testNG runner

我尝试使用@ExtendedCucumberOptions(),第一次运行正常,但第二次运行从未发生,引发以下异常: “方法public void com.github.mkolisnyk.cucumber.runner.ExtendedTestNGRunner.feature(cucumber.api.testng.cucucumberFeatureWrapper)需要名为:feature的@DataProvider”

我发现这个问题: 所以,这个cucumber报告库似乎不支持cucumber的更高版本,我无法使用@ExtendedCucumberOptions来提供我所需要的内容

=>我对maven的依赖包括:

<dependency>
    <groupId>com.github.mkolisnyk</groupId>
    <artifactId>cucumber-runner</artifactId>
    <version>1.3.4</version>
</dependency>


<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>4.4.0</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-testng</artifactId>
    <version>4.4.0</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.4.0</version>
</dependency>
package runners;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
import org.testng.annotations.DataProvider;


@CucumberOptions(
        features = {"src/test/resources/features/"},
        glue = {"stepDefinitions"},
        tags = {"@magic"},
        plugin = {
                "pretty"
                , "html:target/cucumber"
                , "json:target/cucumber/cucumber.json"
                , "rerun:target/cucumber/failedTests.txt"
        },
        monochrome = false
)


public class AreaRunner extends AbstractTestNGCucumberTests { 

        @Override
        @DataProvider(parallel = true)
        public Object[][] scenarios() {
                return super.scenarios();
        }

}

除了@ExtendedCucumberOptions之外,还有其他解决方案吗?

第二次运行从未发生的原因是重试功能仅适用于JUnit runner,如所示。

谢谢您的回答。我知道@ExtendedCucumberOptions只适用于JUnit。我有一个基于testNG的框架,所以我的问题是testNG是否有类似的东西。