Cucumber runner class 从 Cucumber 4.2.3 升级到 5.1.3 后初始化错误
Cucumber runner class initialised with error after upgrade from cucumber 4.2.3 to 5.1.3
我最近将我的测试自动化项目从 Cucumber 4.2.3 升级到 5.1.3。当 4.2.3 时,测试是 运行 OK(运行 并行)。但是,一旦我升级到 5.1.3。跑步者 class 初始化时出错。
[ERROR] initializationError(com.my.project.CukeTest) Time elapsed: 0.008 s <<< ERROR!
java.lang.NoClassDefFoundError: cucumber/api/event/ConcurrentEventListener
Caused by: java.lang.ClassNotFoundException: cucumber.api.event.ConcurrentEventListene
下面是我的跑步者class。
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/resources/features"},
plugin = {
"pretty",
"html:target/cucumber-html-report",
"json:target/cucumber/cucumber.json",
"junit:target/cucumber/cucumber.xml",
"io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm",
"rerun:target/rerun.txt"
},
glue = {"com.my.project.steps", "com.my.project.hook"},
monochrome = true
)
public class CukeTest {}
如您所见,在 Runner class 中没有直接调用 ConcurrentEventListener。
我知道自 4.7.x 或 4.8.x 以来,有很多导入已更改。我已经更新了这些导入。
欢迎任何意见。提前谢谢你。
我使用的依赖项。
<cucumber.version>5.1.3</cucumber.version>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java8</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>${cucumber.version}</version>
</dependency>
您正在使用 io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm
插件。此插件与 v5 不兼容。
我最近将我的测试自动化项目从 Cucumber 4.2.3 升级到 5.1.3。当 4.2.3 时,测试是 运行 OK(运行 并行)。但是,一旦我升级到 5.1.3。跑步者 class 初始化时出错。
[ERROR] initializationError(com.my.project.CukeTest) Time elapsed: 0.008 s <<< ERROR!
java.lang.NoClassDefFoundError: cucumber/api/event/ConcurrentEventListener
Caused by: java.lang.ClassNotFoundException: cucumber.api.event.ConcurrentEventListene
下面是我的跑步者class。
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/resources/features"},
plugin = {
"pretty",
"html:target/cucumber-html-report",
"json:target/cucumber/cucumber.json",
"junit:target/cucumber/cucumber.xml",
"io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm",
"rerun:target/rerun.txt"
},
glue = {"com.my.project.steps", "com.my.project.hook"},
monochrome = true
)
public class CukeTest {}
如您所见,在 Runner class 中没有直接调用 ConcurrentEventListener。 我知道自 4.7.x 或 4.8.x 以来,有很多导入已更改。我已经更新了这些导入。
欢迎任何意见。提前谢谢你。
我使用的依赖项。
<cucumber.version>5.1.3</cucumber.version>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java8</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>${cucumber.version}</version>
</dependency>
您正在使用 io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm
插件。此插件与 v5 不兼容。