0
,看起來像這樣我的特拉維斯YML文件的腳本部分:特拉維斯腳本退出代碼永遠不會失敗,即使它應該
script:
- ./run_tests.sh
腳本本身運行在醬實驗室的一些測試。如果腳本由於測試失敗而失敗,它仍然以代碼0退出,構建繼續傳遞。如果測試失敗,腳本爲什麼不以失敗代碼退出?
當我輸出我的腳本文件的末尾退出代碼,我得到0。當我輸出的腳本命令後,立即.travis.yml文件中的退出代碼,我得到1:
echo $?
0
The command "./run_tests.sh" exited with 0.
$ echo $?
1
有你嘗試使用'-e' bash選項的runnig腳本?它應該立即退出,如果腳本中的任何命令返回狀態!= 0.請參閱:https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html – odradek
它仍然返回相同的退出代碼;我想知道是否可能會受到run_tests.sh測試從if語句中運行的事實的影響。 – danielle
是的,的確如此,如果一個進程返回退出代碼1作爲條件在if(if if; then etc ...')中運行,那麼該語句只會計算爲false,而'-e'選項不會採取行動。我不知道你是如何處理'else'子句,但你可以嘗試在那裏添加'exit 1',看看會發生什麼。 –
odradek