【发布时间】:2019-12-11 00:15:21
【问题描述】:
我正在尝试执行第二轮仅运行失败的场景,以避免由于环境/网络/测试不稳定而导致误报。 我想知道是否有办法只运行将执行以下操作的 maven 命令: 1.运行我的跑步者在其配置中包含的所有场景 2. 为本次运行创建 cucumber.json 报告 3.创建失败场景列表 4.运行失败场景列表 5. 根据第 2 次运行失败的测试结果更改第 1 次运行创建的报告的结果,以便最后只有两次运行都失败的场景被标记为失败,并且最终没有重复报告第一次运行失败的测试(即第二次运行覆盖了第一次运行的结果)。
我正在使用 cucumber 4.4.0 和 testNG 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