1
我正在爲bash腳本編寫單元測試,並希望檢查腳本是否因錯誤而退出(我使用了帶錯誤代碼的exit
)。攔截出口
有沒有辦法趕上exit
(我知道trap
),但不要中斷命令流(類似異常捕捉)?
我的測試腳本:
do_smth1 && echo OK || echo Fail
do_smth2 && echo OK || echo Fail
do_smth3 && echo OK || echo Fail
我的主要腳本:
do_smth1(){
...
...
[ $? -eq 0 ] && success || error_exit
}
等。
我想要一個接一個地執行所有測試。現在在第一個命令之後流動中斷。
爲什麼你不能只檢查返回值?你是否用'set -e'運行測試腳本,並且沒有正確處理被測腳本的返回值?也許你可以用一個例子來擴展你的問題,你有什麼(代碼)和你喜歡什麼功能。 – 2012-07-17 11:51:51
請參閱編輯 – qutron 2012-07-17 12:00:50
您所展示的內容應該適用。偶然有'set -e'有效嗎?如果將'set + e'放在測試腳本的開頭附近會發生什麼? – 2012-07-17 12:18:57