【问题标题】:Cucumber rerun failed tests and cocatenate results using a testNG runner for cucumber 4.xCucumber 使用针对 Cucumber 4.x 的 testNG 运行器重新运行失败的测试并连接结果
【发布时间】:2019-12-11 00:15:21
【问题描述】:

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

我正在使用 cucumber 4.4.0testNG runner

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

我发现了这个问题: https://github.com/mkolisnyk/cucumber-reports/issues/138 所以,这个 cucumber-reports 库似乎不支持更高版本的 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 还有其他解决方案吗?

【问题讨论】:

    标签: cucumber


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。我知道 @ExtendedCucumberOptions 仅适用于 JUnit。我有一个基于 testNG 的框架,所以我的问题是 testNG 是否有类似的东西。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-09
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 2016-11-10
      • 1970-01-01
      相关资源
      最近更新 更多