配置Cucumber场景失败率阈值后Jenkins构建异常,求排查
问题分析与解决方案
可能的两个配置问题
1. 场景失败率的实际计算是否触发阈值
你配置的failedScenariosPercentage:10是指失败场景占总场景的比例超过10%时,构建标记为失败。如果你的总场景数量较少(比如9个场景),1个失败场景的占比是11.1%,已经超过10%阈值,这种情况下构建失败是符合配置逻辑的。你可以先统计总场景数和失败场景数,确认实际失败率是否真的超出了10%。
2. 未禁用失败步骤的百分比检查
控制台日志里的Found 0.496278 failed steps, while expected not more than 0.000000 present,说明Cucumber插件默认在检查失败步骤的百分比,而你没有配置这个参数,它的默认值是0(即不允许任何步骤失败)。虽然这条日志显示"Build status left unchanged",但这个默认检查可能和场景失败率的检查相互影响,导致不符合预期的构建状态。
修正后的Pipeline配置
需要显式添加failedStepsPercentage: -1禁用失败步骤的百分比检查,同时可以按需禁用其他不必要的百分比检查:
post { always { cucumber failedFeaturesNumber: -1, failedScenariosNumber: -1, skippedStepsNumber: -1, failedStepsNumber: -1, pendingStepsNumber: -1, undefinedStepsNumber: -1, fileIncludePattern: '**/*cucumber-report.json', sortingMethod: 'ALPHABETICAL', failedScenariosPercentage: 10, failedStepsPercentage: -1, // 禁用失败步骤百分比检查 failedFeaturesPercentage: -1 // 可选:禁用失败特性百分比检查 } }
验证逻辑
修正后,构建状态只会由场景失败率控制:
- 失败场景占比 ≤10%(即通过率≥90%):构建标记为成功
- 失败场景占比 >10%:构建标记为失败
- 所有基于数量的失败检查、以及失败步骤/特性的百分比检查都已禁用,不会干扰场景失败率的判断
内容的提问来源于stack exchange,提问作者Anand
相关产品推荐
相关产品推荐

