首页 > 解决方案 > 使用 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>

标签: javacucumbercucumber-jvmcucumber-javatestng-dataprovider

解决方案


如果您查看 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"。也许这可以解决问题


推荐阅读