Я недавно обновил свой проект автоматизации тестирования с огурца 4.2.3 до 5.1.3. Когда 4.2.3 тесты работали нормально (параллельно). Однако, как только я обновился до 5.1.3. Класс runner инициализирован с ошибкой.
[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
Ниже приведен мой класс runner.
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 {}
Как вы можете видеть, прямого вызова ConcurrentEventListener в классе Runner нет. Я знаю, что начиная с 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>