【问题标题】:Output failed test details to stdout using maven surefire使用 maven surefire 将失败的测试详细信息输出到标准输出
【发布时间】:2012-01-01 02:13:34
【问题描述】:

当我使用 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 上获取这些详细信息(断言消息 + 异常 + 堆栈跟踪)?

【问题讨论】:

    标签: java testing maven-2 maven-surefire-plugin


    【解决方案1】:

    我发现在stdout 上产生的输出太多而没有用处。尝试在浏览器中打开 HTML 报告。运行测试后,只需刷新页面。看看target/surefire-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>
    

    【讨论】:

    • 谢谢!错过了那个选项。所以唯一输出到控制台而不是文件的是那个简短的报告,而所有其他的工作人员,如 xml、html 报告仍在生成?
    • 是的。所以你在stdout 上有你的断言消息、异常消息和堆栈跟踪。
    • 该命令似乎并不总是对我有用...它第一次有效,我解决了问题,我按向上箭头并再次运行它,但下一次我吐了关于需要再次检查 target/surefire-reports 的消息,没有文件的内容。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      尝试使用以下 maven 命令

      mvn clean install -DskipTests

      -DskipTests 编译测试,但跳过运行它们

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-24
        • 2018-11-15
        • 2015-04-27
        • 1970-01-01
        • 2022-12-09
        • 1970-01-01
        相关资源
        最近更新 更多