黄瓜重新运行失败的测试,并使用testNG运行程序对黄瓜4.x进行结果合并

时间:2019-08-02 11:07:09

标签: cucumber

为了避免由于环境/网络/测试不稳定而引起的误报,我试图执行仅运行失败方案的第二轮操作。 我想知道是否有办法只运行将执行以下操作的maven命令: 1.运行跑步者配置中包含的所有方案 2.为此运行创建cummon.json报告 3.创建失败方案的列表 4.运行失败方案的列表 5.根据在第二次运行中失败的测试结果来更改在第一次运行中创建的报告的结果,以便最后,只有在两次运行中均失败的方案才被标记为失败,并且在最终运行中也没有重复项报告那些在第一次运行中失败的测试(即第二次运行会覆盖第一次运行的结果)。

我正在使用黄瓜4.4.0 testNG运行器

我尝试使用@ExtendedCucumberOptions(http://mkolisnyk.github.io/cucumber-reports/extended-cucumber-runner),第一次运行可以,但是第二次运行从未发生,并抛出以下异常: “方法public void com.github.mkolisnyk.cucumber.runner.ExtendedTestNGRunner.feature(cucumber.api.testng.CucumberFeatureWrapper)需要一个@DataProvider,其名称为:feature”。

我发现了这个问题: https://github.com/mkolisnyk/cucumber-reports/issues/138 因此,该黄瓜报告库似乎不支持黄瓜的更高版本,并且我无法使用似乎完全提供我所需的@ExtendedCucumberOptions。

===>我的行家依赖包括:

<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,还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

第二次运行从未发生的原因是,根据https://github.com/mkolisnyk/cucumber-reports/issues/167,重试功能仅适用于JUnit运行器。

答案 1 :(得分:0)

尝试 https://github.com/prashant-ramcharan/courgette-jvm - 与 ExtendedCucumberOptions 类似,它能够重新运行失败的测试,但该测试已经包含新的 Cucumber。