повторный запуск неудачных тестов junit5 огурец

#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