使用 maven surefire 将失败的测试详细信息输出到 stdout

当我使用 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.

要获取有关问题的详细信息,我必须去检查surefire报告文件夹。每次我的测试失败时都这样做会很烦人。有没有办法在stdout上获取这些详细信息(断言消息+异常+堆栈跟踪)?


答案 1

我发现有太多的输出没有用处。尝试在浏览器中使 HTML 报告保持打开状态。运行测试后,只需刷新页面即可。看看 .stdouttarget/surefire-reports/index.html

要将测试结果输出到文件而不是文件,请使用以下命令:stdout

mvn test -Dsurefire.useFile=false

或者在将以下内容添加到您的部分中进行配置。pom.xmlplugins

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

答案 2

您可能使用的是较旧版本的Surefire。我发现较新的版本在控制台上产生更多有用的输出。

如果只想查看失败的测试或有错误的测试,并且只想查看生成中的错误,则可以将 -q 参数传递给 Maven 生成命令。