簡體   English   中英

Jenkins:測試失敗時如何進入失敗階段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM