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

时间:2017-02-15 12:02:11

标签: java maven-3 maven-failsafe-plugin

我有一个JUnit集成测试,在Maven Failsafe插件执行时无法抛出异常。我配置了failsafe来将系统写入特定于测试的文件(redirectTestOutputToFile = true)。但是该文件和XML测试结果文件都不包含异常的完整堆栈跟踪。在大多数情况下,有趣的东西是在引起链的末尾。

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

当然可以用try-catch包围测试本身并手动记录堆栈跟踪,但这会产生很多样板代码。

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

1 个答案:

答案 0 :(得分:9)

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

    <script src="Public_Libs/JQuery/jquery-3.1.1.js"></script>
    <script src="Public_Libs/JQuery/jquery-ui.min.js"></script>
    <script src="Public_Libs/JQuery/jquery.layout-latest.js"></script>
    <link rel="stylesheet" href="Public_Libs/JQuery/jquery-ui.min.css">
    <link rel="stylesheet" href="Public_Libs/JQuery/jquery-ui.structure.min.css">
    <link rel="stylesheet" href="Public_Libs/JQuery/jquery-ui.theme.min.css">

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