当我运行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
结果中错误发生的位置?
如@khmarbaise所述,您可以在maven surefire插件中将trimStackTrace
属性配置为false
。您的build
部分将看起来像:
<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
,您将得到带有详细信息的输出。