java - 使用 io.Cucumber (java8 - testng - spring) 找不到步骤定义
问题描述
我升级了用于在不同的@Test 中运行每个黄瓜场景的黄瓜版本,但现在我的跑步者找不到我的步骤定义当我使用带有 groupId Info.cukes 的黄瓜 1.2.5 时,我的测试运行良好,但知道我迁移到 3.0.1 我的所有测试都被跳过并且我的场景是未定义的。我的跑步者:
@CucumberOptions(
plugin = {"pretty", "html:target/cucumber"},
features = "src/main/java/cucumbertests/features"
, glue = {"cucumbertests.stepdef.customer.CreateCustomerSteps",
"cucumbertests.stepdef.customer.CustomerTestSteps"
}
)
public class CucumberTestRunner {
private TestNGCucumberRunner testNGCucumberRunner;
@BeforeClass(alwaysRun = true)
public void setUpClass() throws Exception {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
@Test(description = "Runs Cucumber Scenarios", dataProvider = "scenarios")
public void scenario(PickleEventWrapper pickleEvent, CucumberFeatureWrapper cucumberFeature) throws Throwable {
testNGCucumberRunner.runScenario(pickleEvent.getPickleEvent());
}
@DataProvider
public Object[][] scenarios() {
return testNGCucumberRunner.provideScenarios();
}
@AfterClass(alwaysRun = true)
public void tearDownClass() throws Exception {
testNGCucumberRunner.finish();
}
}
我使用的是黄瓜 3.0.1 的版本
<cucumber.version>3.0.1</cucumber.version>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>${cucumber.version}</version>
</dependency>
解决方案
如果您查看 cucumber-jvm 存储库中 testng 的发行说明 - https://github.com/cucumber/cucumber-jvm/tree/master/testng。有一个使用 TestNGCucumberRunner 运行的示例链接 - https://github.com/cucumber/cucumber-jvm/blob/master/examples/java-calculator-testng/src/test/java/cucumber/examples/java/计算器/RunCukesByCompositionTest.java
它在 test(scenario()) 方法中具有额外的组参数 - groups = "cucumber"
。也许这可以解决问题
推荐阅读
- excel - 无法使用现有过滤器粘贴值
- c# - Linq-to-entities 到普通 linq
- c# - foreach循环后如何设置原始值
- php - CURL POST 请求不适用于标头
- javascript - TypeError: 将循环结构转换为 JSON\n
- postgresql - 如何从 PostgreSQL 12.5 版本的存储过程中获取多个结果集?
- c# - 如何在 c# 中使用 lua 和 redis 和 stackexchange 创建高性能计数器
- mongodb - 如何将 F# 中的 MongoDB Bson Dosument 映射到泛型类型
- laravel - 运行任何 PHP Artisan/Composer 命令都会返回错误
- docker - 创建的 docker 容器未运行 bash