首页 > 解决方案 > 在 mvn 测试期间显示完整的错误跟踪

问题描述

当我运行 Junit 测试mvn test时,它会为我提供给定错误的以下跟踪:

InvalidEmailTest.setUp:45->BasicTest.getAssertedSubElement:461 » StaleElementReference

所以它向我展示了入口点方法和发生异常的方法。是否有可能在其间调用的每个函数都看到相同的内容?这将使调试更容易

它使我的呼叫跟踪看起来像什么:

* InvalidEmailTest.setUp
  * BasicTest.getAssertSubElement

它实际上是什么:

* InvalidEmailTest.setUp
  * cHelper.accessSpecificGestion
     * mHelper.goTab
         * mHelper.accessOffice
             * BasicTest.getFirstChildByText
                 * BasicTest.getAssertSubElement

有没有办法查看每个异常发生在哪一行,以便我可以准确指出mvn test结果中发生错误的位置?

标签: javamavenjunit

解决方案


正如@khmarbaise 提到的,您可以在maven surefire plugintrimStackTrace中配置属性。您的部分将如下所示:falsebuild

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

此外,如果您愿意,可以通过命令行控制行为:

您可以声明一个属性:

<properties>
  <!-- Others properties declaration -->
  <trimStackTrace>true</trimStackTrace>
</properties>

并用它控制插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <trimStackTrace>${trimStackTrace}</trimStackTrace>
      </configuration>
    </plugin>
  </plugins>
</build>

然后,如果您运行mvn test,您将获得默认的修剪输出,或者如果您运行mvn test -DtrimStackTrace=false,您将获得带有详细信息的输出。


推荐阅读