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

Jenkins xUnit插件参数解析:SkippedThreshold及各类阈值差异咨询

Jenkins xUnit插件关键参数解析

先来看你提供的Jenkinsfile代码:

node{ 
    stage ('Checkout') { checkout scm } 
    stage ('Build') { 
        try { 
            sh ''' mvn clean -B org.jacoco:jacoco-maven-plugin:prepare-agent install ''' 
        } catch (err) { 
            // do nothing 
        } finally { 
            //step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml']) 
            step([$class: 'XUnitBuilder', 
                testTimeMargin: '3000', 
                thresholdMode: 1, 
                thresholds: [ 
                    [$class: 'FailedThreshold', 
                        failureNewThreshold: '', 
                        failureThreshold: '', 
                        unstableNewThreshold: '', 
                        unstableThreshold: '1'], 
                    [$class: 'SkippedThreshold', 
                        failureNewThreshold: '', 
                        failureThreshold: '', 
                        unstableNewThreshold: '', 
                        unstableThreshold: '']
                ], 
                tools: [ 
                    [$class: 'JUnitType', 
                        deleteOutputFiles: false, 
                        failIfNotNew: false, 
                        pattern: '**/target/surefire-reports/TEST-*.xml', 
                        skipNoTestFiles: true, 
                        stopProcessingIfError: false]
                ] 
            ]) 
        } 
    } 
}

接下来逐个解答你的疑问:

一、SkippedThreshold是什么意思?

这个参数是用来针对被跳过的测试用例数量,设置构建状态的触发规则。简单说,就是当本次构建中被跳过的测试数达到你设定的阈值时,Jenkins会将构建标记为「不稳定(Unstable)」或者「失败(Failed)」。

在你的配置里,所有SkippedThreshold的子参数都留空了,意味着你没有启用跳过测试的阈值检查——不管有多少测试被跳过,都不会影响构建的最终状态。

二、failureNewThreshold与failureThreshold、unstableNewThreshold与unstableThreshold的区别

这两组参数的核心区别在于统计范围不同:

  • 不带New的阈值(如failureThreshold、unstableThreshold):统计的是**本次构建中所有测试用例(包括历史上就存在的老测试)**的对应状态数量。比如你设置unstableThreshold: '1',意思是只要本次构建中失败的测试总数量≥1,整个构建就会被标记为「不稳定」。
  • 带New的阈值(如failureNewThreshold、unstableNewThreshold):统计的是本次构建中新增加的测试用例的对应状态数量。比如如果你设置failureNewThreshold: '2',只有当本次新增的测试里,有2个及以上失败时,才会触发对应的构建状态变化(失败或不稳定)。

举个实际例子:
假设你上次构建有3个失败的老测试,这次新增了2个测试,其中1个失败。如果你的failureThreshold: '3',那本次总失败数是4,会触发失败;但如果是failureNewThreshold: '2',本次新增失败数是1,就不会触发。

在你的配置里,所有带New的阈值都留空,说明你只关注「所有测试的总状态数量」,不单独针对新增测试做限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:33:21