你在主構建步驟中使用了什麼? Mavent?螞蟻?自定義腳本?有很多方法可以做到這一點,它很大程度上取決於你的.exe的設計方式,這在OP中沒有解釋。
最簡單的做法是從下拉菜單中添加另一個構建步驟。選擇執行Windows批處理命令。在那裏,寫批處理命令啓動.exe和捕獲返回代碼:
C:\Location_of_exe\your.exe
IF NOT "%ERRORLEVEL%" == "0" (
ECHO "Your exe failed"
EXIT /B 1
) ELSE (
ECHO "Your exe passed"
)
如果您的.exe就像正常的程序,它會返回退出代碼爲0時,成功的,否則它會返回一個非零退出代碼。上述語句查找非零退出代碼(指示某種故障),並且如果檢測到的將退出批次,錯誤代碼1本身EXIT /B 1
。這反過來會向Jenkins表明構建步驟失敗,並將標記作業失敗。
再次,這在很大程度上取決於您的.exe是正確,失敗時返回非零退出代碼。
至於「我也想exe文件來登錄其他一些細節」,再次,完全取決於您的.exe
是否針對不同故障返回不同的退出代碼? - 如果是這樣,上述代碼可以容易地修改,以捕獲在日誌中的所有可能性,並顯示誤差相應
它是一個命令行的.exe,在控制檯中顯示不同的錯誤?如果是這樣,那麼從批處理中調用它會自動在Jenkins日誌中顯示錯誤。如果.exe沒有返回正確的退出代碼,您也可以使用這種方法。您可以捕獲命令行輸出並使用findstr
來搜索特定的輸出行以確定成功或失敗
如果您的.exe是一個GUI應用程序,並且不會生成正確的退出代碼,那麼您無法告訴他們是成功還是失敗(以及失敗)
我會更新這個答案,如果你確定它是哪一個。
我正在使用MSBuild,並且我完全控制了EXE(我寫它)。我可以編寫失敗返回非0。如果我明白你在說什麼,我輸出到控制檯的任何內容都將被記錄下來。我明天會測試這個。 – MillinMo
@MillinMo是的,任何輸出到控制檯將被記錄。您也可以縮短將錯誤代碼返回到'EXIT%ERRORLEVEL%' – jwernerny