【问题标题】:Make maven's surefire show stacktrace in console使 maven surefire 在控制台中显示堆栈跟踪
【发布时间】:2010-05-28 11:31:29
【问题描述】:

我想在控制台中查看单元测试的堆栈跟踪。 Surefire 支持吗?

【问题讨论】:

    标签: maven unit-testing stack-trace maven-surefire-plugin


    【解决方案1】:

    我发现的一个相关问题是,最近版本中的surefire显然默认将trimStackTrace设置为true(使失败测试中的大多数堆栈跟踪无用),这非常不方便。

    设置-DtrimStackTrace=false或定义

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <trimStackTrace>false</trimStackTrace>
        </configuration>
    </plugin>
    

    解决了这个问题。

    【讨论】:

    • 是的。 Maven 不仅打印无意义的腹泻页面,而且隐藏了您实际需要查看的内容。
    • 我创建了一个关于此错误默认值 issues.apache.org/jira/browse/SUREFIRE-1457 的问题。请对其发表评论以帮助其重新开放。
    • @RédaHousniAlaoui 似乎他们将其移至 JUnit 5 的另一个问题:issues.apache.org/jira/browse/SUREFIRE-1432 刚刚在那里投票。
    • 我将 'trinStackTrace' 和 'useFile' 都设置为 false ......但我仍然没有得到我的测试失败的堆栈跟踪 :-(
    • @Kris 你的意思是堆栈跟踪有很多行,输出显示...还有 26 行?
    【解决方案2】:

    您可以使用以下命令在控制台上查看堆栈跟踪,而不是在 target/surefire-reports 文件夹中查看报告文件:

    mvn -Dsurefire.useFile=false test
    

    【讨论】:

    • 这只有记录器输出到控制台,但堆栈跟踪仍然去surefire-reports
    • 使用 trimStackTrace 的答案更好!
    【解决方案3】:

    要扩展之前给出的答案,您还可以在 pom.xml 中配置此行为:

    ..
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.5</version>
      <configuration>
        <useFile>false</useFile>
      </configuration>
    </plugin>
    ..
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2016-01-11
      • 2017-10-24
      • 2011-12-04
      • 2019-12-18
      • 2018-01-30
      • 2011-12-19
      相关资源
      最近更新 更多