gpt4 book ai didi

java - 如何在故障安全中获取失败测试的完整堆栈跟踪?

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:20 25 4
gpt4 key购买 nike

我有一个 JUnit 集成测试,它在由 Maven Failsafe 插件执行时抛出异常失败。我将故障安全配置为将系统写入特定于测试的文件 (redirectTestOutputToFile=true)。但是该文件和 XML 测试结果文件都不包含异常的完整堆栈跟踪。在大多数情况下,有趣的东西位于原因链的末端。

是否有可能以在某处记录完整堆栈跟踪的方式配置故障保护?

当然可以用 try-catch 围绕测试本身并手动记录堆栈跟踪,但这会导致大量样板代码。

请注意:这个问题不是指surefire,而是指failsafe,并已相应标记。它不询问如何在控制台 中显示堆栈跟踪,而是询问如何确保故障安全将完整 堆栈跟踪保存到文件中,而不仅仅是文件的一部分。 This answer很有帮助,因为它命名了正确的属性,但它并不完全正确,因为当然必须将配置应用于故障安全,而不是万无一失。此外,question 2928548 的接受答案这个问题绝对是错误的。

最佳答案

故障安全配置属性 trimStackTrace (遗憾的是默认情况下设置为 true)负责堆栈跟踪操作(感谢 Laf!)。通过以下它被停用:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<!-- (...) -->
</plugins>
</build>

测试本身的输出可以用 redirectTestOutputToFile 重定向到一个文件,但这与堆栈跟踪问题无关,因为堆栈跟踪是故障安全的输出,而不是测试代码本身的输出。

关于java - 如何在故障安全中获取失败测试的完整堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com