将 cucumber-java 从 info.cukes 的 1.2.4 更新到 4.2.2 的 cucumber.io 抛出导入给定(或何时/然后)无法解决错误



作为更新的一部分,我不得不从 info.cukes 的 cucumber-java 版本为 1.2.4 迁移到 io.cucumber 的 cucumber-java 版本为 4.2.2,但使用旧版本的 Cucumber 成功运行的代码开始抛出错误,该错误显示无法解析导入 cucumber.api.java.en.Given(或何时/然后(

下面是从哪里开始执行的黄瓜类

    {
     @RunWith(Cucumber.class)
     @CucumberOptions(features = "classpath:features/functional/",
     glue = {"com.jacksparrow.automation.steps_definitions.functional" },
     tags = { "@guest_search_in_progress" },
     plugin = { "pretty","json:target/cucumber-json/cucumber.json",
     "junit:target/cucumber-reports/Cucumber.xml", "html:target/cucumber- 
     reports"},
     strict = false,
     dryRun = false,
     monochrome = true)
      public class FunctionalRunCuke {
     }
     <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>


     }

请建议我应该怎么做才能解决这个问题

请在POM中使用以下依赖项,并根据您的框架要求添加JUnit/TestNG依赖项。 (只需将 4.2.3 版更改为 4.2.2 版(

<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>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>datatable</artifactId>
    <version>1.1.12</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-testng</artifactId>
    <version>4.2.3</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.3</version>
    <scope>test</scope>
</dependency>

首先,删除cucumber-jvm-depsgherkin依赖项,因为它们可能会干扰 Cucumber 4.2.2 中的传递依赖项。其次,如果你想将Cucumber与JUnit一起使用,你还需要导入Junit(v4.12;因为Cucumber还不支持v5(。并且您需要删除cucumber-testng依赖项(反之亦然,如果您想使用 TestNg,请删除cucumber-junit并且您可能需要 TestNg 依赖项(。最后,如果导入语句的位置在新的 Cucumber 版本中发生了更改,则可能需要更新导入语句。

问题是因为使用了错误的黄瓜依赖项集。以下是迁移到 4.0.0 时应使用的正确黄瓜依赖项集,请注意 -1. 所有黄瓜依赖关系应为同一版本。2. 根据您的框架要求使用 JUnit 或 TestNG。

相关内容

  • 没有找到相关文章

最新更新