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

使用重试功能后如何将Jenkins自动化测试构建状态设为SUCCESS

解决TestNG重试导致Jenkins构建标记为UNSTABLE的问题

问题根源

TestNG的重试机制默认会把首次失败、后续重试通过的测试用例标记为SKIPPED(原失败用例)+ PASSED(重试用例),而你使用的TestNG Result plugin 835.v51会统计跳过测试的占比,当超过设置的0%阈值时,就会将构建状态改为UNSTABLE。

可行解决方案

1. 调整TestNG Result Plugin的跳过阈值

直接在Jenkins流水线的testNgResults步骤中,设置允许的跳过测试百分比,只要大于实际的跳过比例即可。比如你的跳过占比是0.97%,可以设为1%:

testNgResults(
  skippedThreshold: 1,
  testResultsPattern: '**/testng-result.xml'
  // 其他必要参数按需添加
)

如果是全局配置,找到Jenkins中TestNG Result Plugin的设置项,修改「允许的跳过测试百分比」为合适数值即可。

2. 自定义TestNG监听器修正重试测试状态

写一个自定义TestNG监听器,在生成测试报告时,把因重试被标记为SKIPPED的测试用例状态改为PASSED,或者直接移除这类跳过记录:

  • 实现IReporter接口,解析TestNG结果对象,遍历测试方法,识别出属于重试场景的跳过用例,将其状态更新为通过;
  • 或者结合IRetryAnalyzer与IInvokedMethodListener,在测试重试时,不把原失败用例标记为跳过。

3. 流水线中强制覆盖构建状态

如果确认所有测试最终都已通过,可在TestNG结果处理完成后,强制将Jenkins构建状态设为SUCCESS:

// 放在testNgResults步骤之后执行
currentBuild.result = 'SUCCESS'

这种方法直接高效,但要确保没有真正失败的测试,避免掩盖潜在问题。

内容的提问来源于stack exchange,提问作者dominik moravčík

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:43:11