Cucumber V4[io.Cucumber]没有识别@Given/When/Then和giving error“;导入cucumber.api.java.en.When时无法解析“;

Cucumber V4[io.Cucumber]没有识别@Given/When/Then和giving error“;导入cucumber.api.java.en.When时无法解析“;,cucumber,Cucumber,我正在从Cucumber版本1.2.4[info.cukes]迁移到V.4.2.2io.Cucumber。在此之后,Cucumber框架无法识别@Given/When/Then注释和给定错误–无法解析导入Cucumber.api.java.en.Given/When/Then Eclipse建议添加以下依赖项。但我的想法是,当我迁移到CucumberV4(io.cucucumber)时,为什么要添加V1.2.4(info.cukes)的依赖项呢。有人能建议我在V4i下添加哪个是正确的依赖项吗。我

我正在从Cucumber版本1.2.4[
info.cukes
]迁移到V.4.2.2
io.Cucumber
。在此之后,Cucumber框架无法识别
@Given/When/Then
注释和给定错误–无法解析导入
Cucumber.api.java.en.Given/When/Then

Eclipse建议添加以下依赖项。但我的想法是,当我迁移到CucumberV4(
io.cucucumber
)时,为什么要添加V1.2.4(
info.cukes
)的依赖项呢。有人能建议我在V4i下添加哪个是正确的依赖项吗。我将添加哪些导入来解决此问题。不添加
info.cukes
->
cuumber java
(1.2.4)就可以解决此问题吗


信息杯
黄瓜爪哇
1.2.4
下面是我在POM.xml下添加的依赖项列表。所有这些都是io

   <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>

黄瓜
黄瓜核
4.2.2
黄瓜
黄瓜爪哇
4.2.2
黄瓜
黄瓜刺柏
4.2.2
测试
黄瓜
黄瓜汁
1.0.6
假如
黄瓜
小黄瓜
6.0.14
org.mockito
莫基托所有
1.10.19
测试
黄瓜
黄瓜试验
2.0.0
黄瓜
黄瓜皮容器
2.1.0
测试

请帮助我了解如何在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>

黄瓜
黄瓜爪哇
4.2.3
黄瓜
黄瓜刺柏
4.2.3
测试
朱尼特
朱尼特
4.12
测试
黄瓜
数据表
1.1.12
黄瓜
黄瓜试验
4.2.3
黄瓜
黄瓜皮容器
4.2.3
测试

Maven停止了
info.cukes
cucumber java,而不是使用
io.cucumber

因此,从(
io.cucumberccumberJava
)的4.7.0版开始,不再支持
cucumber.api.java.en.Given/When/Then


您可以使用
导入io.cumber.java.en.Given(/When/Then)
替换它。

请删除
cumber core
cumber jvm deps
小黄瓜
cumber picocontainer
。它们是可传递的依赖项,将由您的依赖项提供。然后运行
mvn clean install
并在IDE中重新导入您的项目。嘿,谢谢您的指导。我确实有以下依赖项。但仍然是每一个给定的,When&Then都不能用in-step定义类识别。当我将鼠标放在注释上时,eclipse并没有在建议中显示任何导入。我对可能出现的问题感到惊讶。每个注释都有26个相同类型的错误,因此在错误未得到解决之前,我无法使用mvn clean install执行。嘿@mpkorstanje,你认为应该怎么做吗?嘿@mpkorstanje,你能分享一下你的经验吗。从info.cukes迁移到io.cucumber v4以解决上述错误时可能会出现什么问题。您不需要
datatable
junit
,它们都是可传递的依赖项。其他一切看起来都很好。
<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>