You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins构建邮件中添加失败测试的详细信息

在Jenkins邮件中直接展示失败测试的详细信息

嗨,我来帮你搞定这个问题!你目前用的${FAILED_TESTS}变量只能返回简洁的失败摘要,要是想在邮件里直接看到完整的错误栈信息,不用跳控制台,可以按下面的方法配置:

第一步:确保安装邮件扩展插件(Email Extension Plugin)

默认的Jenkins邮件功能比较有限,得先装这个插件才行。你可以去「Manage Jenkins > Plugins」里搜索“Email Extension Plugin”,找到后安装并重启Jenkins。

第二步:替换邮件内容里的变量或用自定义脚本

这里有两种实用的方式:

方式一:用插件内置的详细变量

直接把邮件里的${FAILED_TESTS}换成${FAILED_TESTS_DETAILED}就行!这个变量会自动输出包含完整错误栈的详细测试失败信息。调整后的邮件内容可以写成这样:

Check console output at $BUILD_URL to view the results

失败测试详情:
${FAILED_TESTS_DETAILED}

方式二:用Groovy脚本自定义展示格式

要是你想更灵活地控制展示的内容(比如分模块显示测试类、方法名、错误信息),可以用Groovy脚本自定义:
在构建任务的「Post-build Actions」里选择「Editable Email Notification」,然后在邮件内容区域插入以下脚本:

<%
def failedTestAction = manager.build.getAction(hudson.tasks.test.AbstractTestResultAction.class)
if (failedTestAction != null && failedTestAction.failedTests.size() > 0) {
    out.println("### 失败测试详细报告 ###")
    failedTestAction.failedTests.each { testCase ->
        out.println("#### 测试类:${testCase.fullName}")
        out.println("##### 失败方法:${testCase.name}")
        out.println("##### 错误描述:${testCase.errorDetails}")
        out.println("##### 完整栈跟踪:")
        out.println("```java")
        out.println(testCase.errorStackTrace)
        out.println("```")
        out.println("---")
    }
} else {
    out.println("本次构建无失败测试")
}
%>

这个脚本会遍历所有失败的测试用例,把每个用例的类名、方法名、错误信息和完整栈跟踪都清晰地展示出来。

第三步:测试验证

跑一次包含失败测试的构建,看看收到的邮件里是不是已经直接显示了详细的失败信息啦~

如果是用Pipeline任务的话,语法会稍有不同,你可以通过currentBuild.rawBuild.getAction(...)来获取测试结果,再构建邮件内容哦!

内容的提问来源于stack exchange,提问作者Xin Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:15:16