Выходные данные о неудачных тестах в stdout с помощью maven surefire

Когда я запускаю свою сборку с помощью maven 2

mvn clean install

мои тесты выполняются плагином surefire. В случае неудачного теста я получаю следующий вывод:

Results :

Failed tests: 
  test1(com.my.MyClassTest)

Tests run: 3, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.

Please refer to /home/user/myproject/mymodule/target/surefire-reports for the individual test results.

Чтобы получить подробную информацию о проблеме, я должен пойти и проверить папку отчетов справки. Выполнение этого каждый раз, когда мои тесты терпят неудачу, становится раздражающим. Есть ли способ получить эти данные (assert message + exception + trace trace) прямо здесь, на stdout?

Ответы

Ответ 1

Я нахожу там слишком много результатов, полученных на stdout, чтобы быть полезным. Попробуйте оставить отчет HTML открытым в своем браузере. После запуска тестов просто обновите страницу. Посмотрите target/surfire-reports/index.html.

Чтобы выводить результаты тестирования на stdout, а не на файл, используйте следующую команду:

mvn test -Dsurefire.useFile=false

Или настроить в своем pom.xml добавить в свой раздел plugins следующее.

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.10</version>
  <configuration>
    <useFile>false</useFile>
  </configuration>
</plugin>

Ответ 2

попробуйте использовать команду ниже Maven

mvn clean install -DskipTests

-DskipTests компилирует тесты, но пропускает их

Ответ 3

Возможно, вы используете более старую версию Surefire. Я обнаружил, что более новые версии производят более полезный вывод на консоли.

Если вы хотите видеть только неудачные тесты или тесты с ошибками и видеть только ошибки в сборке, вы можете передать аргумент -q в команду сборки Maven.