![](/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.