#junit5 #cucumber-java
Вопрос:
Я пытаюсь использовать это для реализации механизма повторного запуска для тестов огурцов junit5
<dependency>
<groupId>io.github.artsok</groupId>
<artifactId>rerunner-jupiter</artifactId>
<version>2.1.6</version>
<scope>test</scope>
</dependency>
Вот версии junit и cucumber, которые я использую
junit-jupiter-api
версия есть 5.7.0
cucumber-java
версия есть 6.9.1
и cucumber-junit-platform-engine
версия есть 6.9.1
Но я получаю эту ошибку при компиляции
java.lang.NoClassDefFoundError: org/junit/jupiter/api/extension/ScriptEvaluationException
Caused by: java.lang.ClassNotFoundException: org.junit.jupiter.api.extension.ScriptEvaluationException
Когда я понизил junit-jupiter-api
версию до 5.4.2
«как 5.7.0
«, которая конфликтовала с rerunner-jupiter
деревом зависимостей maven, я начал получать эту ошибку
org.apache.maven.surefire.booter.SurefireBooterForkException: There was an error in the forked process
org/junit/platform/commons/PreconditionViolationException
Если есть какой-либо другой способ , которым я могу выполнить повторный запуск в тестах огурцов junit5, я готов использовать и это
Любая помощь будет признательна
Ответ №1:
Конфликты зависимостей в стороне.
К сожалению, то, что вы пытаетесь сделать, принципиально невозможно. JUnit 5 состоит из трех частей: платформы JUnit, JUnit Jupiter и JUnit Vintage. Последние два являются реализациями тестового движка на платформе JUnit. Как и движок платформы Cucumber JUnit.
rerunner-jupiter
Юпитер простирается на Юпитер. Расширения не являются частью платформы JUnit, поэтому вы не можете использовать их с Cucumber.
Комментарии:
1. Есть ли какой-либо другой способ, которым я могу выполнить повторный запуск с junit5 и cucumber ?
2. Взгляните на API запуска платформы. Он создаст план тестирования для выполнения. Вы также можете создать новый план, выбрав неудачные тесты для второго выполнения. Ничего из ряда вон выходящего, но api хороший.
Ответ №2:
Если вы используете плагин maven-surefire (из плагина maven-failsafe), параметр конфигурации rerunFailingTestsCount
поддерживает, начиная с версии 3.0.0-M4 плагина, повторный запуск тестов на основе JUnit 5.
Это включает в себя движок платформы Cucumber JUnit.
Дополнительная информация: https://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#rerunFailingTestsCount
Комментарии:
1. Хотя…, имейте в виду, что Surefire не сообщает должным образом результаты тестов (пока). См.: issues.apache.org/jira/browse/SUREFIRE-1896 и issues.apache.org/jira/browse/SUREFIRE-1849