Выбор одного теста с движком Cucumber JUnit5 не удался - PullRequest
1 голос
/ 23 февраля 2020

Рассмотрим этот простой проект: https://github.com/ekalin/cucumber-junit5-gradle. Он содержит функцию Cucumber с использованием JUnit5.

Следуя инструкции из https://github.com/cucumber/cucumber-jvm/tree/master/junit-platform-engine, я создал класс с аннотацией @Cucumber, чтобы можно было обнаружить тесты. И когда я запускаю ./gradlew test, функция обнаруживается и запускается.

Но если я пытаюсь выбрать только этот тест с помощью ./gradlew test --tests cucumber.junit5.gradle.SampleSteps (или другими способами выбора теста), я получаю эту ошибку:

Execution failed for task ':test'.
> No tests found for given includes: [cucumber.junit5.gradle.SampleSteps](--tests filter)

Я пытался добавить includeEngines("cucumber") к useJUnitPlatform, но это не имело никакого значения.

Существует ли какая-либо конфигурация, позволяющая выбрать один тест, когда он использует другой двигатель?

1 Ответ

1 голос
/ 23 февраля 2020

Gradle еще не поддерживает обнаружение или фильтрацию тестов вне класса (см .: gradle / # 4773 ). Вместо этого Gradle просит JUnit Platform обнаружить тесты во всех классах в тестовом пакете. Аннотация @Cucumber - это обходной путь для обнаружения всех файлов объектов в пакете аннотированного класса.

Когда вы используете --tests cucumber.junit5.gradle.SampleSteps, вы применяете фильтр на основе классов ко всем результатам теста. Поскольку аннотированный класс @Cucumber является обходным решением, он не является частью обнаруженных тестов, а файлы функций не имеют ClassSource, а класс FileSource исключит их всех.

Лучший в настоящее время вы можете использовать обходной путь, предложенный в gradle / # 4773. Вы также можете попросить команду Gradle обеспечить лучшую интеграцию с платформой JUnit, чтобы можно было использовать все ее функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...