使用CruiseControl.Net进行持续集成
一、什么是持续集成?
团队开发需要进行集中的项目文件管理与有效的协调,采用源代码管理工具协助管理。限定重要文件的访问权限、使用悲观锁杜绝成员同时编辑同一份文件、 不允许长时间迁出文件等规则让我们在某一时间段内非常愉快。但是慢慢的,有人抱怨“我获取了源代码怎么编译错误?”。于是增加规定:迁入之前必须获取最 新,然后再一次编译,成功后方可迁入VSS。这种办法是很不错,但是工作繁琐了,尤其对大型项目,更加的苦不堪言。
持续集成是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一点儿说,就是指对于开发人员的每 一次代码提交,都自动地把代码仓库中所有代码获取下来,执行编译、并自动运行所有的测试用例,如出现错误则通知人员这是一个失败的提交。
二、为什么要持续化集成?
持续化集成工具便是服务于敏捷软件开发的一个系列。它主要将原本分散,无序的工作流程,通过工具软件有机的组织起来,并且在组织的过程中,参与开发设计测试的各个部门的人员都能从中获取到自动化方面的优惠。使得团队的工作效率大大提升。
持续集成强调完全自动化的、可重复的创建过程,其中包括每天运行多次的自动化测试。它让开发者可以每天进行系统集成,从而减少了开发过程中的集成问 题。持续集成可以减少集成阶段”捉虫”消耗的时间,从而最终提高生产力。它使得绝大多数bug在引入的同一天就可以被发现。而且,由于一天之中发生变动的 部分并不多,所以可以很快找到出错的位置。对于稍微大一点的项目,持续集成,每日发布将成为项目组的一项重要工作。
如果使用持续集成,它就能帮你跨越频繁的部署的障碍。频繁的部署是很有意义的,它能让你的用户很快的发现系统新的特性,然后给你针对这些特性迅速的反馈, 这样就能让你的开发循环有更好的协同工作。这就能让你的用户和你们的开发能更好的沟通。
持续集成的效果与你的测试集的质量是成正相关的,要找出那些很深层次的bug,意味着你得不断提高你测试集的质量。
三、CruiseControl.Net是什么?
上面讲解了什么是持续化集成,CruiseControl.Net就是一款由ThoughtWorks公 司提供给的轻量级的持续化集成工具。它能够将代码版本控制,单元测试,代码规范检查,项目的发布部署等工作步骤有机的组织起来,并且利用其调度性可作自动 化处理,它还有强大的日志记录功能,能将集成结果及时地反馈给项目管理人员和项目开发人员。下面是CruiseControl.Net的工作流程图:
在实验部署中,CruiseControl.NET集成了如下功能:
- MsBuild集成编译
- 电子邮件提醒功能
- Nunit单元测试报告
- 自动发布网站应用程序到指定目录
其他相关资料:
- http://sourceforge.net/projects/ccnet/
- http://www.ibm.com/developerworks/cn/java/j-build/
- http://mylovejsj.blog.163.com/blog/static/38673975201041110425135/
- http://www.51crazy.net/Article/234.aspx