maven 将 cucumber 4.5.x升级到v5.0.0

3pvhb19x  于 2023-03-07  发布在  Maven
关注(0)|答案(1)|浏览(176)

我正在尝试用Cucumber 4.5.x升级一个旧的测试框架到一个新的版本。这个项目是一个Maven,IntelliJ,Java,Selenium和Cucumber的项目。
但看起来 cucumber 要么是故意误导我,要么是他们的文档对我来说是不可理解的。
首先,我升级到版本5.0.0,重新加载了Maven依赖项,并进行了mvn干净安装。
我立刻发现

import io.cucumber.core.api.Scenario was gone.

经过一些手动搜索,我发现新路径似乎是

import io.cucumber.core.gherkin.Scenario;

然后我转到了6.0.0版本,这里似乎没有任何Scenario库。
查看文档,它似乎声称Scenario位于

io.cucumber.java.Scenario

但这甚至不适用于版本4.5.x,那么我该如何找到导入的新路径呢?
更新:
在尝试升级之前,我的插件列表中包含以下内容:

io.cucumber:cucumber-core:4.5.2
io.cucumber:cucumber-expressions:7.0.2
io.cucumber:cucumber-dependencies:1.1.14
io.cucumber:cucumber-datatable_1.1.14 
io.cucumber:cucumber.gherkin:5.1.0
io.cucumber:cucumber-tag-expressions:1.1.1

在我的pom.xml中:

<properties>
    <java.version>11</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <selenium.version>4.3.0</selenium.version>
    <cucumber.version>4.5.2</cucumber.version>
    <junit5.version>5.5.1</junit5.version>
</properties>

修改pom.xml中的版本号并重新加载是正确的方法吗?或者我应该用项目插件列表中的较新版本替换插件(在IntelliJ中)?
我应该升级其他的cucumber-x插件吗?
备选案文1:
我将pom.xml文件中的版本更改为5.0.0。

  • 其他 cucumber 插件的插件版本会自动更新。

构建项目:确定运行mvn clean install-〉出现以下错误:

cannot find symbol
[ERROR]   symbol:   class Scenario
[ERROR]   location: package io.cucumber.core.api

当然,这是由于图书馆的变化。
但是当我试图更换旧的

import io.cucumber.core.api.Scenario

import io.cucumber.java.Scenario

没有与. java匹配的文件。
我不知道我还能做什么?我错过了哪些导入,除了更新pom. xml和/或导入新插件之外,我如何添加它们?

p4tfgftt

p4tfgftt1#

从v4到v5的跳跃是相当大的。其中一个促成因素是模块系统的引入。您可以阅读更多关于release notes folder中的这一点和其他变化的信息。
因此对于v5.x和更高版本,假设您使用的是cucumber-java,则正确的导入为io.cucumber.java.Scenario。如果您使用的是cucumber-java8,则正确的导入为io.cucumber.java8.Scenario
两个导入都没有显示表明您可能没有将所有依赖项升级到同一版本。您可以使用mvn dependency:tree -Dverbose来调试。
更高版本还引入了材料清单,以帮助您保持依赖项与单个版本号的一致性。

相关问题