引言
本文是《持续交付》一书学习总结的第二篇。主要内容涉及持续集成以及持续交付中的测试实践。
持续集成(一)
关于持续集成(CI),我想程序员朋友都很熟悉了,现在很少有项目不采用持续集成了。我们来看一下其中的原则和实践。
持续集成要达到的目的是,每当有开发者提交了改动,整个应用程序需要重新构建,并运行足够广泛的测试来保证质量,以使得应用程序始终处于能够正常工作的状态。一个典型的CI过程如图所示。
要想达到目标,需要几个前提条件。首先就是代码的版本控制,这一点已经不止一次被作者提到。版本控制的好处在前面已经分享过,没有版本控制,持续集成就很难顺利进行。然后就是自动化构建,这里的自动化指的是利用专业CI工具,将持续集成的过程自动化,而不要试图自己实现。常见的持续集成工具有开源的Jenkins,和付费的TeamCity等。最后就是整个团队要CI的意识,比如代码要及时提交,CI过程发现错误,要及时修正,不能把CI的过程当作摆设。
下面分享一些持续集成实践的关键点。
- 有规律地提交代码(永远不嫌烦)。
- 创建广泛的自动化测试。持续集成阶段的测试,通常是指单元测试、集成测试以及验收测试(Acceptance Test)。在具体实践中,前两种测试更常见,而验收测试通常关注产品的功能和非功能特性是否符合预期,这就需要部署真实