作者回复: 如果你的本地检查可以在几分钟内完成,那就是可以在本地做的,因为你把它放到 CI 服务器上执行,效果只会更差,而且几分钟时间,稍作调整也并无不可。
如果时间很长,比如,超过十分钟,根据快速反馈的原则,就要考虑是不是考虑按照测试金字塔划分一下,在本地只跑单元测试。
但实际情况是,很多团队没有真正的单元测试,造成本地只能运行集成测试,甚至是验收测试,所以,会占据很长时间。
作者回复: 谁破坏谁修复,CI 红的时候,除了修复的人,任何人不允许提交。这时如果有人已经完成代码准备提交,破坏 CI 的人就是阻塞了它人的工作,所以,要尽快修复。
作者回复: 一次一个提交,出错了容易修复,等这次 CI 通过了,下个人再来提交。强调本地检查,就是说,CI 的运行不会影响你在本地工作。把事情做小,做简单,这是我们在任务分解模块的主要观点,前面学的原则,后面也要用啊!
作者回复: 能花钱解决的事都是小事,一个程序员比一台机器贵多了。
作者回复: 说得没错,测试是基础,自动化是基础,CI是一根主线,将诸多实践贯穿起来。
CI强调自动化,测试人员不需要参与到其中。但测试人员可以拿到生成物去测试,找到的问题以测试的形式补充进来。
作者回复: 难道不是把测试修好,让它稳定下来吗?关于测试应该是什么样,我们在前面讲过。
作者回复: 可执行的方案是定期回顾,做多了就懂了。
作者回复: 其实,CI 不应该占用那么长时间,在构建脚本里写好打包过程,在 CI 服务器上调用一下就好了。至于 CI 监视器,网上有很多,找一个现成的拿来用就好了。