![](/img/trans.png)
[英]How to make Jenkins stage fail and turn red when coverage is too low (using C# and dotnet test)?
[英]Jenkins: How to fail stage when test fails?
我的管道中有一个阶段正在运行一些 UI 测试,这是我得到的行为:
我怎样才能做到这一点,而不是在测试失败时进入下一阶段,而是管道失败?
这是我的管道阶段,我尝试添加一个帖子部分,但即使测试失败,它也会报告成功。
stage('UITests') {
steps {
withCredentials([file(credentialsId: 'env_file', variable: 'envFile')]) {
sh '''
cat $envFile > .env.dev
make run_tests
'''
}
}
// Fail build if test fail
post{
success {
echo "UI Tests passed moving to Build stage"
}
failure {
error "UI Tests Failed, stopping the build"
}}
}
在该阶段的 Jenkins 日志中,我可以看到测试失败的时间
错误 命令失败,退出代码为 1。
测试通过时不会发生这种情况,那么帖子块总是成功的原因是什么?
sh 步骤返回与实际 sh 命令相同的状态代码: https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script
您可以获得此状态代码,将其值分配给变量,然后失败并显示一条自定义消息:
def statusCode = sh script:"cat $envFile > .env.dev && make run_tests", returnStatus:true
if (statusCode != 0) {
error 'UI Tests Failed, stopping the build'
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.