运行 testng 在 Git 预提交挂钩中测试

Run testng test in Git pre-commit hook

如果特定的 testng 测试失败,我将如何编写 bash 脚本作为 git 预提交挂钩失败?我目前 运行 我的 testng 测试通过 maven surefire 是这样的:

mvn clean test -Dtest="MyTestName"

如果 pre-commit 挂钩 return 非零,则提交甚至在开始之前就中止了。在 bourne 风格的脚本中 shell(例如 sh、ksh、zsh、bash 等),默认情况下,最后一个命令 运行 的 return 值是return 脚本的值。据我了解,失败时 mvn clean test 应该 return 非零,因此您的脚本应尽可能简单:

#!/bin/sh
mvn clean test -Dtest="MyTestName"

然后只需将其命名为 pre-commit 在您的 .git/hooks/ 目录中,并在其上 运行 chmod ug+x 以确保它可以执行。