如果测试失败,则从预提交GIT钩子返回失败代码

如果测试失败,则从预提交GIT钩子返回失败代码,git,bash,gulp,git-bash,Git,Bash,Gulp,Git Bash,我有一个gulptasktest,它使用mocha来运行我的单元测试 我想将单元测试作为GITpre-commithook的一部分来运行 因此,我的预提交文件基本上如下所示: #!/bin/bash gulp test 我的问题是,即使测试失败,也会进行提交。如何从我的预提交文件中检测测试失败?Bash脚本的退出代码是最后执行的命令的退出代码。 如果gulp测试失败, 它以非零形式存在, 这意味着失败, 提交应该被中止 你确定钩子脚本被执行了吗 脚本必须位于.git/hooks/pre-co

我有一个gulptask
test
,它使用mocha来运行我的单元测试

我想将单元测试作为GIT
pre-commit
hook的一部分来运行

因此,我的
预提交文件基本上如下所示:

#!/bin/bash
gulp test

我的问题是,即使测试失败,也会进行提交。如何从我的
预提交
文件中检测测试失败?

Bash脚本的退出代码是最后执行的命令的退出代码。 如果
gulp测试失败,
它以非零形式存在,
这意味着失败,
提交应该被中止

你确定钩子脚本被执行了吗

  • 脚本必须位于
    .git/hooks/pre-commit
  • 脚本必须是可执行的
假设满足这些条件,, 发布的脚本应按预期工作。 如果没有,则对其进行修改,以帮助调试并发布预期失败的示例提交的输出

#!/bin/bash

gulp test

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

您需要获得
吞咽测试的结果
。如果成功,则在
pre-commit
中退出0
,或者不执行任何操作。如果失败,则以非零代码退出。如果测试失败,是否以非零代码退出?否则它如何返回失败?