簡體   English   中英

Jenkins / Hudson沒有捕獲Perl腳本錯誤

[英]Jenkins/Hudson is not catching Perl script errors

我目前正在使用Jenkins / Hudson觸發Perl腳本,但是,我正在努力找出適當的例外情況是拋出一些Jenkins拾取它。 在控制台中,它顯示了Perl腳本錯誤,如預期的那樣,但Jenkins的Build Success結束了。

我已經嘗試過die命令和出口1的系統打印中的許多操作,但似乎仍然沒有發現任何問題。

任何幫助將是巨大的! 提前致謝!

Jenkins認為以非零值退出的構建步驟已失敗。 die()應該足夠了

也許在perl之后有另一個shell命令以零退出? Jenkins看不到各個進程的每個退出代碼。 Jenkins只需將您輸入到構建步驟區域中的腳本放入一個臨時文件中,然后在臨時文件上調用/bin/sh 腳本失敗時由您決定是否以非零值退出腳本。

最簡單的方法是使用#!/bin/sh -xe開頭腳本。 如果您學習Shell手冊頁,您將看到-e選項使Shell每當有非零值的進程退出時都停止腳本。

我在Linux和Windows上運行Jenkins作業時遇到了這個問題。 我(艱難地)了解到Linux返回碼必須在0到255之間。如果返回碼不在此范圍內,則返回碼將設置為0。Perl文檔指出die()的返回碼為非零,但不再具體。 因此,如果die()調用生成的非零返回碼不在0到255之間,Linux會將其視為零。

我使用了TAP :: Harness :: JUnit 它將TAP輸出包裝在XML文檔中,然后將XML通過SCP傳遞到Hudson服務器,供Hudson使用。

為了使hudson命令正確地執行所有shell命令花費了一些時間,但是我的意思是兩到三個嘗試來正確設置所有路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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