我最近将测试自动化项目从黄瓜4.2.3升级到了5.1.3。在4.2.3中,测试运行正常(并行运行)。但是,一旦我升级到5.1.3。跑步者类初始化有误。
[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
下面是我的跑步者班。
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类中的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>
答案 0 :(得分:1)
您正在使用io.qameta.allure.cucumber4jvm.AllureCucumber4Jvm
插件。该插件与v5不兼容。