【转】关于持续集成

1. 为什么要做持续集成
多个开发在一起工作时会将工作代码集成在一起,如果说某一个开发的代码有不良的影响或者说是对其他代码有冲突,那么就会出现问题。传统模式中,开发一般会很长时间独自完成自己的代码,这些代码集成问题可能会在很长时间内才会被发现,与开发早期内发现会加大更改的难度。
易于定位错误。也就是当你的持续集成失败了,说明你新加的代码或者修改的代码引起了错误,这样你很容易的就可以知道到底是谁犯了错误,可以找谁来讨论。
及早在项目里取得系统级的成果。因为代码已经被集成起来了,所以即使整个系统还不是那么可用,但至少你和你的团队都已经可以看到它已经在那了。
改善对进度的控制。这点非常明显,如果每天都在集成,当然每天都可以看到哪些功能可以使用,哪些功能还没有实现。如果你是程序员,你不用在汇报任务的时候说我完成了多少百分比而烦恼,而如果你是项目经理的话,那么你也不再烦恼程序员说完成了编码的50%到底是个什么概念。
改善客户关系。理由同上。
更加充分地测试系统中的各个单元。这也是我们常讲的Daily Build与Smoke Test相结合带来的绝大好处。
能在更短的时间里建造整个系统。这点恐怕要你实施以后才能得出结论。就我们而言,持续集成并没有为每个项目都缩短时间,但却比没有实施时,项目更加可控,也更加有保证。
2.优点:
随着时间的推移,持续集成带来的更多好处,也逐渐被认识到了,比如说:
有助于项目的开发数据的收集。比如说,项目代码量的变化,经常出错的Tests,经常出错的source code,等等。
与其它工具结合的持续代码质量改进。如与CheckStyle, PMD, FindBugs, Fxcop等等等等的结合。
与测试工具或者框架结合的持续测试。如与xUnit,SilkTest, LoadRunner等等的结合。
便于Code Review。在每个build里,我们都可以知道与前一个build之间有什么改动,然后针对这些改动,我们就可以实施Code Review了。
便于开发流程的管理。比如说,要把一个开发的build提交给测试组作测试,测完满意了,再提交到发布组去发布。
3.工具
Apache's Continuum---开源,用于构建Java项目。由于它是maven的官方构建工具,往往对基于maven的项目提供最好的支持和体验。其管理和配置通过一个居于web的界面进行。
Cruise Control--开源,围绕ANT构建。又称为用于java的‘原始“CI工具。(难配置)
JetBrains Team City-- 一种常用的长夜CI服务器。它的一个独有的特性是,具体有针对
几种IDE的相应插件,这些插件使开发人员可以在其更改提交版本控制系统时进行”预测试“提交(使用此意味着开发人员不可能中断升序的构建)。管理和配置通过基于web的界面进行。
Hudson---开源,支持多种插件可支持其他版本控制系统。管理和配置通过基于web的界面进行。

猜你喜欢

转载自linda-fxx.iteye.com/blog/1299675
今日推荐