Jenkins与持续集成(Continuous Integration)之概述
1. 持续集成(CI,Continuous Integration)的定义
大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
总结一下,持续集成就是:指开发阶段,对项目进行持续性自动化编译、测试,以达到控制代码质量的手段。持续集成是一种软件开发实践。持续集成的宗旨是避免集成问题。
在敏捷开发方法中,无论是XP或者Scrum方法,持续集成需要达到最佳成果,必须依靠着自动化集成单元测试并通过测试驱动开发(TDD)。
2. 为什么需要持续集成
持续集成对单元测试较为依赖,测试覆盖率越高,单元测试越准确,越能体现持续集成的效果。
持续集成主要在以下方面提供好处:
- 持续自动化测试(持续集成可通过时间间隔触发,或其他方式触发)
- 跟踪工程健康状况
- 强制性单元测试用例,验收测试用例等
- 静态代码检测,生成测试报告
3. 持续集成的价值
持续集成的价值体现在:
- 减少项目风险
- 减少开发中的重复过程
- 任何时间任何地点生成可部署的软件
- 增加项目的可见性
- 建立团