如何在Jenkins中当Konsist单元测试阶段失败时继续构建并标记为不稳定
Jenkinsfile 调整方案:Konsist阶段失败时继续执行并标记构建不稳定
针对需求——当Konsist架构规则测试阶段失败时,不中断后续单元测试流程,同时把整个构建标记为不稳定状态,可对原有Jenkinsfile做如下修改:
// first set of unit tests stage("konsist (architecture rules)") { try { fastlaneUtils.run("konsist") // 执行gradlew :konsist:test } catch (Exception e) { // 捕获测试失败异常,将构建标记为不稳定 currentBuild.result = 'UNSTABLE' // 可选:打印异常信息便于排查 echo "Konsist架构测试失败,标记构建为不稳定: ${e.getMessage()}" } finally { dir('../') { junit( testResults: '**/test-results/**/*.xml' ) } } } // second set of unit tests stage("unit tests") { try { fastlaneUtils.run("test") // 执行其他所有单元测试 } finally { dir('../') { junit( testResults: '**/test-results/**/*.xml' ) } } }
关键改动说明
- 捕获异常避免中断:新增
catch (Exception e)块捕获Konsist测试失败抛出的异常,阻止阶段失败直接终止整个流水线,确保后续unit tests阶段能正常执行 - 标记构建状态:在catch块中设置
currentBuild.result = 'UNSTABLE',Jenkins会将构建状态显示为黄色的「不稳定」,既区别于成功的绿色,也不同于直接失败的红色 - 保留测试报告:finally块的junit步骤不受影响,无论Konsist测试成功或失败,都会收集并展示测试结果,方便排查问题
- 不影响后续流程:异常被处理后,流水线会自动进入下一个unit tests阶段,完成所有测试任务
内容的提问来源于stack exchange,提问作者Benjamin Mesing
相关产品推荐
相关产品推荐

