在控制台中制作maven的surefire show stacktrace

IAd*_*ter 76 maven-2 unit-testing stack-trace surefire

我想在控制台中看到单元测试的堆栈跟踪.surefire是否支持这个?

h7r*_*h7r 155

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

设置-DtrimStackTrace=false或定义

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <trimStackTrace>false</trimStackTrace>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

解决了这个.

  • 是的.Maven不仅打印出无意义腹泻的页面,而且隐藏了你真正需要看到的东西. (51认同)
  • 我创建了一个关于这个错误的默认https://issues.apache.org/jira/browse/SUREFIRE-1457的问题.请评论它以帮助其重新开放. (5认同)
  • @RédaHousniAlaoui似乎他们将其移至JUnit 5的另一期:https://issues.apache.org/jira/browse/SUREFIRE-1432刚刚在这里投票。 (2认同)

Eug*_*hov 55

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

mvn -Dsurefire.useFile=false test
Run Code Online (Sandbox Code Playgroud)

  • 使用 **trimStackTrace** 的答案更好! (6认同)
  • 这只有记录器输出到控制台,但堆栈跟踪仍然转到surefire-reports (2认同)

yeg*_*256 23

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

..
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <useFile>false</useFile>
  </configuration>
</plugin>
..
Run Code Online (Sandbox Code Playgroud)