JUnit 5: можно ли установить TestExecutionListener в плагине Maven Surefire?

Я хочу использовать JUnit 5 и интерфейс TestExecutionListener, чтобы выполнить некоторую очистку после завершения тестового запуска. Весь проект использует JUnit Jupiter, без использования Vintage.

В Maven Surefire можно было установить JUnit 4 RunListener через конфигурацию, чтобы заархивировать это. Может ли Surefire распознать новый JUnit 5 TestExecutionListener? Если нет, есть ли способ провести тесты JUnit 5 и использовать TestExecutionListener или RunListener?

Я не хочу создавать свою собственную программу запуска только для выполнения тестов со слушателем.


person Twaldigas    schedule 20.04.2018    source источник


Ответы (1)


Maven Surefire в настоящее время не поддерживает добавление TestExecutionListener через свою конфигурацию. Я думаю, вам следует открыть для них проблему, потому что в настоящее время они включают настраиваемого поставщика команды JUnit в свою кодовую базу.

Однако вы можете зарегистрировать свой собственный TestExecutionListener с помощью механизма загрузчика служб, описанного в Руководство пользователя.

person Marc Philipp    schedule 20.04.2018
comment
Спасибо за ваш ответ. Как-то пропустил этот абзац в руководстве пользователя. Для всех, кто не знаком с механизмом Service Loader, например, я, попробуйте библиотеку Google AutoService: github.com/google/auto/tree/master/service - person Twaldigas; 20.04.2018
comment
Невозможно аккуратно распечатать что-либо на экране, не так ли? Из ServiceLoader-загруженного TestExecutionListener доступа к Maven logger нет. - person Michael Piefel; 22.06.2018
comment
Есть ли какой-нибудь статический способ доступа к регистратору Maven? - person Marc Philipp; 26.06.2018