敏捷的一个要点就是:快速反馈。 从最早的每日构建,到现在的持续集成,都是开发者为了迅速获得系统反馈而采取的一系列措施。而且反馈信息越来越快速,信息要求越来越高。
一次集成的过程步骤大概如下:自动更新->编译构建->自动测试->报告集成结果。需要用户写好各过程命令(比如更新版本),并在集成服务器的支持下,把各过程自动串连起来。
目前可用的集成服务器有很多种, DSTP也对持续集成提供了支持。
DSTP为支持持续集成提供的功能如下。
1.通过图形界面设置集成命令,并能把命令按顺序发到指定机器进行执行。完成版本更新,编译构建,测试等实际过程。
2.允许设置在集成结束/失败/成功/部分失败中某种情况发生时,自动向指定人员发送集成报告。在集成报告中,失败的环节,自动以显眼的红色给予提示;自动显示错误信息,甚至包括哪行代码出错。
3.可以设置集成周期,如每日/周/月/,或者每隔固定分钟后自动启动集成。
4.和SVN集成,可以自动感知SVN库的变化。可以设置SVN每次修改后,自动启动集成。在集成失败,自动向代码提交人和指定的项目人员发送报告,催促迅速更正,保证代码随时可用。
设置集成命令:
DSTP通过图形界面进行命令设置,设置过程简单,通过鼠标右键,就可以增/删/改命令(活动),并设置命令的先后关系。如下图,表示设置了几个过程,更新版本后继续编译版本,编完版本后运行自动测试。
我们看下编译版本这个命令如何设置的。双击编译版本节点,弹出对话框如下图
设置命令时,允许设置命令执行机器(需要集成机器有安装客户端)和预先设置环境变量。DSTP会自动下发该命令到指定机器进行执行。并得到执行结果。
同时各命令的执行有先后顺序,比如版本编译没成功,就进行版本加载测试是无效的,DSTP能判断各机器返回的执行结果是否成功或者失败,并根据设置决定集成是否继续下一集成步骤。
集成报告:
当集成各步骤完成,集成结束,DSTP能根据预先要求向指定的项目人员发送集成报告。
可以根据集成的结果选择是否通知,可以设置通知接收人。
DSTP向通知接收人发送的集成报告格式如下
在报告中,列出了本次集成各命令的运行时间,以及运行结果. 对于失败的命令,会以红色显目提醒。
点错误信息查看,系统会自动显示本次集成的错误信息。
从错误信息可以看出,在test.c的第四行出现了错误
集成周期:
DSTP的集成服务器可以设置集成周期,按规定时间自动启动集成。同时,DSTP和SVN紧密集成,可以自动感知SVN的变动。可以设置SVN每次修改后,自动启动集成。在集成失败,自动向代码提交人和指定的项目人员发送报告,催促迅速更正,保证代码随时可用。
关于持续集成,已经有很多论述。但真的实施起来的公司并不多。很多公司可能就只做到了每日构建,自动测试做的并不多。这是因为自动测试环境通常涉及到多台机器的配合,没有一个好的集成服务器并不好施行;更重要的是,自动测试需要根据项目实际,进行适当的测试构造,而这方面的技术难度和工作量都不小。
当敏捷流行起来,测试驱动开发也在深入人心,测试的价值也越来越为人所认识。当大家慢慢意识到在测试,在集成投入精力是有价值时,持续集成也就开始流行,从而推动开发变得更加敏捷~~
![点击查看大图](http://bbs.scmlife.com/attachments/month_0802/a3cf7788fa4202c59adebbb9a4d42217.jpg)
![点击查看大图](http://bbs.scmlife.com/attachments/month_0802/3724e7d1aae5d515349f107abe07094c.jpg)
![点击查看大图](http://bbs.scmlife.com/attachments/month_0802/54732c4011471d360ace27c8bdb78d28.jpg)
![点击查看大图](http://bbs.scmlife.com/attachments/month_0802/71873dd411d9a9cc5a256722a5b92a9c.jpg)
![点击查看大图](http://bbs.scmlife.com/attachments/month_0802/dd2dc4834e7d5edc4ba51d3091b9ef9d.jpg)