Правильное решение для этого сценария - не провалить тесты.Тесты должны записывать сбой (например, в отчете XML), но бегун должен вернуть Maven «success».
Для Surefire вы можете достичь этого с помощью -DtestFailureIgnore=true
РЕДАКТИРОВАТЬ Вы можете поместить это в свой POM, чтобы активировать его постоянно.
Но если вы звоните maven с другими целями, результаты могут быть нежелательными.Например, для mvn deploy
вы, вероятно, захотите остановить процесс при возникновении ошибок теста.
Чтобы это исправить, у вас есть две опции:
- Написать скрипт, который вызывает Mavenс необходимыми опциями для создания отчета о тестировании
- Переместите опцию в профиль
[EDIT] Подробная информация об опции # 1: Вы можете написать сценарий оболочки, который запускает Maven с -DtestFailureIgnore=true
для создания отчетов.
Затем вам понадобится утилита, которая может найти отчеты XML и проверить, нет ли в них ошибок.Если вы используете для этого Java, позвоните System.exit(1)
, если найдете ошибки.Если вы предпочитаете командную строку, используйте XMLStarlet , чтобы выполнить запрос к XML, и инструмент, подобный find(1)
, для поиска файлов XML.Если вам нужна помощь, отправляйте новые вопросы.
Вызовите эту утилиту после Maven в вашем сценарии оболочки с помощью util || exit 1
- это остановит сценарий оболочки с кодом ошибки 1
, если утилита обнаружит ошибку.
Используйте этот скрипт для сборки вместо встроенного бегуна Maven.