本文由Markdown语法编辑器编辑完成。

From https://blog.csdn.net/inter_peng/article/details/53131831

1. 持续集成的概念

持续集成(Continuous Integration)的概念有很多不同的版本,持续集成的出现是为了配合敏捷开发(相对于瀑布开发)的速度和效率而产生的一个用于编译、测试、发布、部署的工具。

为什么叫持续呢?因为编码人员每天都会向项目提交代码,因此项目源码每天都会发生改变,为了能够验证最新的代码是否能够被成功编译,是否会影响前面迭代已经通过的自动化测试case,是否能够打出完整的可执行包供测试人员进行测试……。通过每天,甚至是每次提交代码后的持续集成,可以很快地得到反馈,并且易于追溯,即使出了问题也很容易知道是由于哪一位开发人员的提交而导致的。

持续集成(CI)是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。

通俗一点儿说:
就是指对于开发人员的每一次代码提交,都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。

持续集成一般通过编写好的python等脚本,自动完成一系列集成所需要的步骤。从代码的check out, 构建项目工程,编译源代码,生成可执行包或安装文件,压缩打包,上传到公司或项目组的FTP等位置……

如果不想每次提交都去集成的话,可以选择在一个固定的时间点去集成,比如每天晚上等项目组的所有成员都已经把当天的代码提交完毕后,启动集成。当第二天上班的时候,测试人员会去FTP下载最新的项目包,开始测试开发人员前一天提交的代码是否正确。这也是Daily Build的概念来源,即每日构建。

2. 持续集成的工具

有一篇文章介绍了持续集成的八大工具,分别是:

  • Hudson
  • CruiseControl
  • Continuum
  • QuickBuild
  • Bamboo
  • Jenkins
  • TeamCity
  • CI-Eye

关于这几个持续集成工具的详细介绍,可以参考这篇文章:
《八大持续集成工具》http://openskill.cn/article/218

我在三年半的工作生涯中,接触过的两个持续集成工具分别是Bamboo和Jenkins,因此对这两个持续集成工具比较亲切,但是真正了解得很少。一时,这个工具一般都是自动运行,很少需要人的参与,除非前一天构建失败后,需要登录工具去下载失败的log;二来,这个也主要是项目经理和测试组会经常访问的工具,开发人员一般只负责提交代码到SVN即可。

但是,不管是哪一个持续集成工具,它本质上只不过是一个定时器,时间一到,做你脚本里让它去做的事。如果,想要扩展持续集成的作用,则需要将这个工具与其他的工具结合,才能显示出持续集成的本色。

比如,如果想增加测试工具,选择JUnit, JWebUnit, Selenium等;
想检查代码标准,需要用checkstyle, sonarqube等代码规范检查工具;
想了解测试覆盖率,可以用Istanbul, JCoverage等工具;
想打包生成二进制文件,要用Ant, Make之类的工具。

参考链接:

  1. 持续集成(CI)、自动化构建和自动化测试—初探
    http://www.cnblogs.com/chaoa/articles/4447354.html
  2. 八大持续集成工具
    http://openskill.cn/article/218
  3. Bamboo的地址
    https://www.atlassian.com/software/bamboo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/inter_peng/article/details/53131831

持续集成(Continuous Integration)基本概念与实践的更多相关文章

  1. 基于Jenkins Pipeline的ASP.NET Core持续集成实践

    最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署效率,因此这里总结一下. 一.关于持续集成与Jenkins Pipelin ...

  2. <自动化测试方案_9>第九章、持续集成平台搭建

    第九章.持续集成平台搭建 (一)什么是持续集成 参考文章地址:https://blog.csdn.net/qq_32261399/article/details/76651376 敏捷软件开发(英语: ...

  3. 基于 CODING 的 Spring Boot 持续集成项目

    本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...

  4. CI/CD持续集成/持续部署 敏捷开发

    敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...

  5. Jenkins持续集成【简介】

    1.1 目前主流网站部署的流程    目前主流网站部署方法,通过Hudson/Jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台 ...

  6. Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02

    1.      Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求, ...

  7. 持续集成平台jenkins

    一. 什么是持续集成 1. 概念 持续集成(Continuous Integration),也就是我们经常说的CI 持续集成(CI)是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发 ...

  8. Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建

    详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...

  9. Jenkins持续集成企业实战

    阅读目录: Jenkins持续集成企业实战1.1 目前主流网站部署的流程1.2 Jenkins持续集成简介1.3 Jenkins持续集成组件1.4 Jenkins平台安装部署1.5 Jenkins相关 ...

  10. devops持续集成

    目录 Devops 版本控制系统 Git安装 Git使用 git四种状态 git基础命令 git分支 git合并冲突 git标签 git命令总结 Github使用 创建仓库 HTTP协议 SSH协议 ...

随机推荐

  1. 20155219实验四 Android开发基础设计实验报告

    20155219实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World!+学号的小程序 实验步 ...

  2. 2018.10.25 CCSP马拉松摸铜归来

    24号体测跑50+1000米. 50米抢跑被罚重跑???然后老年人就只能吊着一口仙气跑第二次50米.然后跑1000米,然后再到宿舍收拾行李赶往地铁站,然后再冲到火车站...(卒) 宾馆,三人挤入二人房 ...

  3. JAVA:形参与实参

    今天百度startWith函数的用法,无意中看到了形参这个称呼,因此就去了解了下形参与实参. 在传值机制中,其实就是把变量b(实参)的地址传递给了形参(也就是实参跟形参都是用的同一个地址,在传值之前形 ...

  4. 错题:Test3

    /** * * @ClassName: test3 * @Description: TODO(请问主程序运行结果是什么?) * @author yk * @date 2017年3月9日 上午11:20 ...

  5. 【JVM】参数配置

    [一]JVM参数配置释意 编号 配置项 例子 含义 备注 1 -Xmx -Xmx20m java应用最大可用内存为20M  整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小.持久代一般固 ...

  6. CH3B16 魔法珠

    题意 3B16 魔法珠 0x3B「数学知识」练习 描述 Freda和rainbow是超自然之界学校(Preternatural Kingdom University,简称PKU)魔法学院的学生.为了展 ...

  7. (考研)java网络编程

    dog   jb 叫什么...  从飞秋得到IP地址 自己学会的用命令 ipconfig 编写java程序看ipimport java.net.*; public class Test{ public ...

  8. What is Zeebe?

    转自:https://zeebe.io/what-is-zeebe/ Zeebe is a workflow engine for microservices orchestration. This ...

  9. Gravitee.io 架构

    Gravitee.io 官方文档提供了几张架构图,通过图我们可以有一个整体的认识. 全局架构 平台架构 参考资料 https://docs.gravitee.io/apim_overview_arch ...

  10. Linux系统运维故障排查

    一.思路 1.处理问题要求 2.一般思路 二.具体问题 1.网络问题 (1)网络不通 (2)网络很慢 2.硬件问题 3.操作系统问题 (1)系统无法正常启动 (2)系统运行慢或死机 4.服务或程序问题 ...