如果可以在预提交和预推送git钩子上进行测试,为什么还要进行连续集成测试?

Ric*_*oss 4 continuous-integration githooks travis-ci git-husky

如果您已经运行了像Husky这样的系统,可以在进行预提交和预推送之前对您的代码进行测试,那么使用持续集成系统来测试您的代码有什么意义?

小智 5

预提交和预推挂钩非常适合快速操作和测试。有时,您甚至可以在IDE中设置一个挂钩,该挂钩在每次保存文件时都会运行快速的单元测试。但是通常您有多个测试套件,而与单元测试不同,功能和集成测试通常需要更长的时间才能运行,这对于钩子是不可行的。

另外,您希望在构建可交付成果的环境中运行测试,而该环境通常不是本地计算机。

使用CI系统的另一个原因是运行合并后测试,以验证多个并行合并不会引入任何问题。

总而言之,您运行的测试越多,性能越好,并且CI系统允许您同时运行通常由某种拉取请求挂钩和合并后测试触发的合并前测试。所有这些都在受控的可靠环境中进行。