2017-10-08 127 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