Jenkins 詹金斯黄瓜报道

Jenkins 詹金斯黄瓜报道,jenkins,cucumber,jenkins-pipeline,jenkins-declarative-pipeline,Jenkins,Cucumber,Jenkins Pipeline,Jenkins Declarative Pipeline,我在我的声明性管道中使用如下内容: cucumber '**/cucumber.json' 我可以通过侧边栏上的链接检查一些测试是否失败,但是如果一些cucumber报告失败,我是否需要做些什么来将包含cucumber.json的阶段标记为失败?因为问题是,尽管有一些失败的报告,但构建和阶段都是绿色和成功的 詹金斯版本是2.176.3 Cucumber reports版本为4.10.0您正在使用的Cucumber命令只会生成报告,而不管测试结果如何。 因此,是的,您必须以某种方式使管道失败,因

我在我的声明性管道中使用如下内容:

cucumber '**/cucumber.json'
我可以通过侧边栏上的链接检查一些测试是否失败,但是如果一些cucumber报告失败,我是否需要做些什么来将包含
cucumber.json的阶段标记为失败?因为问题是,尽管有一些失败的报告,但构建和阶段都是绿色和成功的

詹金斯版本是2.176.3


Cucumber reports版本为4.10.0

您正在使用的Cucumber命令只会生成报告,而不管测试结果如何。 因此,是的,您必须以某种方式使管道失败,因为您面临的问题是,您的测试命令没有返回,从而使管道失败

方法是让运行测试的命令在测试出错时返回非零的退出代码(退出1)。这会让你的管道舞台变红

如果您使用Maven运行测试,这将在“mvn测试”(或其他)上自动管理。 否则,如果您不能做到这一点,您将不得不设法制作类似于sh脚本之类的东西 返回退出代码(0通过/1失败)或设置管道currentBuild.result值的“script”标记内的groovy函数:

def checkTestResult() {
    // Check some file to see if tests went fine or not
    return 'SUCCESS' // or 'FAILURE'
}
...
stage {
    script {
        currentBuild.result = checkTestResult()
        if (currentBuild.result == 'FAILURE') {
            sh "exit 1" // Force pipeline exit with build result failed
        }
    }
}
...
我建议您在声明性管道的“始终”生成后操作上使用cucumber命令 因为这是一个步骤,如果通过或失败,您可能每次都会在管道的末尾执行。请参见以下示例:

pipeline {

    stages {
        stage('Get code') {
            // Whatever
        }
        stage('Run tests') {
            steps {
                sh "mvn test" // run_tests.sh or groovy code
            }
        }
    }
    post {
        always {
            cucumber '**/cucumber.json'
        }
    }
}

如果报告标记为失败,则可以设置
BuildStatus:“FAILURE”
将生成标记为失败


cucumber文件includepattern:'**/cucumber.json',buildStatus:'FAILURE'

构建状态未更改。使用此选项,buildStatus:。知道怎么了吗?始终{cumber fileIncludePattern:'*/target/.json',buildStatus:'UNSTABLE'}[build status change working with currentBuild.result='UNSTABLE']@chandu 1)当报告标记为失败或不稳定时,将设置指定的状态。您是否检查了是否有失败/不稳定的报告?2) 你的文件包含模式看起来很奇怪。它将在
target
目录中搜索一个名为
.json
的文件,该文件嵌套在另一个目录中。例如,
dir/target/.json
将匹配。你确定你想要这个吗?对不起,我上面的评论有误。文件模式是正确的fileIncludePattern:“*/target/.json”。我可以看到报告,也有失败的报告。但詹金斯的建造状态没有改变。