Jenkins -在测试失败时构建成功而不是不稳定

fjaof16o  于 2023-05-06  发布在  Jenkins
关注(0)|答案(1)|浏览(185)

我有一个Jenkins管道,它使用dotnet test命令运行测试。其中一些是使用Selenium运行的UI测试,并不完全可靠。因此,我们建立了一个机制,如果一些测试失败,那么这些测试将再次运行。如果测试第二次通过,则认为测试成功。这不是一个很好的方法,但是可以防止我们浪费大量的时间来调查下一次成功运行的测试失败。
当构建运行时,Jenkins重新运行一些测试,并且它们第二次通过时,构建被标记为不稳定而不是成功。这很烦人,因为它显示为我们的源代码控制(BitBucket)失败,最终我们认为构建成功。它还防止我们使用Renovate自动合并分支。
我们如何覆盖结果,将其设置为SUCCESS而不是UNSTABLE。我尝试在测试后添加以下步骤,但这并没有改变结果。

stage('Set Result'){
        steps{
            script{
                currentBuild.result = 'SUCCESS'
            }
        }
    }

有没有其他方法来做到这一点?

ntjbwcob

ntjbwcob1#

在构建的post部分,您可以声明:

post {
    unstable {
        script {
            currentBuild.rawBuild.@result = hudson.model.Result.SUCCESS
        }
    }
}

当您运行构建时,作业将失败,您需要进入控制台输出并执行进程内脚本批准。再次运行它,它将再次失败,您必须为第二个脚本执行进程内脚本审批。现在,当你在这里运行构建时,当你得到一个不稳定的结果时,构建就会成功。

相关问题