Return 来自预提交的失败代码 GIT 如果测试失败则挂钩

Return failure code from pre-commit GIT Hook if test fails

我有一个 gulp 任务 test,它使用 mocha 来 运行 我的单元测试。

我想 运行 单元测试作为 GIT pre-commit 挂钩的一部分。

基本上我的 pre-commit 文件如下所示:

#!/bin/bash
gulp test

我遇到的问题是,即使测试失败,也会提交。如何从我的 pre-commit 文件中检测到测试失败?

Bash 脚本的退出代码是最后执行的命令的退出代码。 如果 gulp test 失败, 它以非零值退出, 这意味着失败, 并且提交应该被中止。

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

  • 脚本必须在 .git/hooks/pre-commit
  • 脚本必须是可执行的

假设满足这些条件, posted 的脚本应该按预期工作。 如果没有,则修改它以帮助调试和 post 您预计会失败的示例提交的输出。

#!/bin/bash

gulp test

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