2017-10-08 61 views
1

我有一個吞噬任務test,它使用摩卡來運行我的單元測試。如果測試失敗,則返回來自預先提交GIT Hook的失敗代碼

我想運行單元測試作爲GIT pre-commit hook的一部分。

所以基本上我pre-commit文件看起來像這樣:

#!/bin/bash 
gulp test 

我的問題是,即使測試失敗,提交而成。如何從我的pre-commit文件中檢測到測試失敗?

+0

您需要得到'gulp test'的結果。如果成功了,那麼在'pre-commit'中退出0或者什麼也不做。如果失敗,則以非零數字退出。如果測試失敗, – ElpieKay

+0

是否使用非零代碼進行吞吐?它是如何返回失敗的呢? – max630

回答

1

Bash腳本的退出代碼是執行的最後一個命令的退出代碼。 如果gulp test失敗, 它將以非零值退出, 表示失敗, 並且提交應該中止。

你確定鉤子腳本得到執行嗎?

  • 腳本必須.git/hooks/pre-commit
  • 腳本必須是可執行

假設這些條件都滿足, 張貼預期應該工作的腳本。 如果沒有,則修改它以幫助調試併發布您希望失敗的示例提交的輸出。

#!/bin/bash 

gulp test 

x=$? 
echo exit code = $x 
exit $x