Cucumber V4 [io.cucumber] 未识别 @Given/When/Then 并给出错误 "The import cucumber.api.java.en.When cannot be resolved"

Cucumber V4 [io.cucumber] is not identifying @Given/When/Then and giving error "The import cucumber.api.java.en.When cannot be resolved"

我正在从 Cucumber 版本 1.2.4 [<groupId>info.cukes</groupId>] 迁移到 V.4.2.2 <groupId>io.cucumber</groupId>。在此之后,Cucumber Framework 无法识别 @Given/When/Then 注释并给出错误 – The import cucumber.api.java.en.Given/When/Then cannot be resolved

Eclipse 建议添加以下依赖项。但我的想法是,当我迁移到 Cucumber V4(io.cucumber) 时,为什么还要添加 V1.2.4(info.cukes) 的依赖项。有人可以建议我应该在 V4 i.cucumber 下添加哪个是正确的依赖项。我应该添加哪个导入来解决这个问题。不加info.cukes -> cuucmber-java(1.2.4)

能解决吗
    <dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>1.2.4</version>
    </dependency>

下面是我在 POM.xml 下添加的依赖项列表。都是 io.cucumber 依赖项。

   <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-core</artifactId>
                <version>4.2.2</version>
            </dependency>

            <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>4.2.2</version>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-junit</artifactId>
                <version>4.2.2</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-jvm-deps</artifactId>
                <version>1.0.6</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>gherkin</artifactId>
                <version>6.0.14</version>
            </dependency>

            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.10.19</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-testng</artifactId>
                <version>2.0.0</version>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-picocontainer</artifactId>
                <version>2.1.0</version>
                <scope>test</scope>
            </dependency>

请帮助我了解如何在 Cucumber v4 下解决此错误。我不想使用 info.cukes maven id,因为它没有 V4。所以请指导

我已经解决了问题并分享了正确的依赖集。请根据您的框架要求添加 JUnit/TestNG。

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>4.2.3</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.3</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

     <!-- https://mvnrepository.com/artifact/io.cucumber/datatable -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>datatable</artifactId>
    <version>1.1.12</version>
</dependency>

    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-testng -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-testng</artifactId>
    <version>4.2.3</version>
</dependency>

    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.3</version>
    <scope>test</scope>
</dependency>

Maven 看起来停止了 <groupId>info.cukes</groupId> cucumber-java,而不是使用 <groupId>io.cucumber</groupId>.

因此,从 (<groupId>io.cucumber</groupId><artifactId>cucumber-java</artifactId>) 的 4.7.0 版本开始,不再支持 cucumber.api.java.en.Given/When/Then

可以用import io.cucumber.java.en.Given(/When/Then)代替。

我也遇到过这个问题。替换后 cucumber.api.java.en.Given/When/Then 和 导入 io.cucumber.java.en.Given(/When/Then)

特征文件是运行映射方法