我有一个gulp任务test
,它使用mocha来运行我的单元测试。
我想将单元测试作为GIT pre-commit
挂钩的一部分运行。
所以基本上我的pre-commit
文件看起来像这样:
#!/bin/bash
gulp test
我遇到的问题是,即使测试失败,也会进行提交。如何从pre-commit
文件中检测到测试失败?
答案 0 :(得分:2)
Bash脚本的退出代码是最后执行的命令的退出代码。
如果gulp test
失败,
它退出时非零,
这意味着失败,
并且提交应该中止。
你确定钩子脚本被执行了吗?
.git/hooks/pre-commit
假设满足这些条件, 发布的脚本应该按预期工作。 如果它没有,那么修改它以帮助调试并发布您希望失败的示例提交的输出。
#!/bin/bash
gulp test
x=$?
echo exit code = $x
exit $x