(转)持续化集成工具CruiseControl.NET

时间:2021-11-30 08:24:21

持续化集成工具CC.NET[

引言:

团队开发需要 进行集中的项目文件管理与有效的协调,我们采用源代码管理工具协助我们管理,卓有成效。限定重要文件的访问权限、使用悲观锁杜绝成员同时编辑同一份文件、 不允许长时间迁出文件等规则让我们在某一时间段内非常愉快。但是慢慢的,有人抱怨“我获取了源代码怎么编译错误?”。于是增加规定:迁入之前必须获取最 新,然后再一次编译,成功后方可迁入VSS。这种办法是很不错,但是工作繁琐了,尤其对大型项目,更加的苦不堪言。

看来我们需要一个机器人帮我们,那就是持续集成。持续集成是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一点儿说, 就是指对于开发人员的每一次代码提交,都自动地把代码仓库中所有代码获取下来,执行编译、并自动运行所有的测试用例,如出现错误则通知人员这是一个失败的 提交。一个适合的集成频率非常重要,根据团队的实际情况采用灵活的集成频率。 CC.NET是一个开源工具。

简介:

每日构建(Daily Build)也可称为持续集成(Continuous Integration),强调完全自动化的、可重复的创建过程,其中包括每天运行多次的自动化测试。每日构建的作用日益显得重要。它让开发者可以每天进行系统集成,从而减少了开发过程中的集成问题。

持续集成可以减少集成阶段"捉虫"消耗的时间,从而最终提高生产力。它使得绝大多数bug在引入的同一天就可以被发现。而且,由于一天之中发生变动的部分并不多,所以可以很快找到出错的位置。

CC.Net 支持NAnt、MSBuild两种构建方式,通过这两种方式我们可以方便的进行项目集成编译。NAnt是功能非常强大的开源.NET编译工具,但是需要编 写build文件,该文件负责指导NAnt进行编译,NAnt也可以直接编译sln文件,但是对2005支持不好。MSBuild是微软随VS2005一 起发布的一个集成编译工具,和NAnt类似,可以直接编译sln文件,功能上完全可以替代NAnt。

对于稍微大一点的项目,持续集成,每日发布将成为项目组的一项重要工作,在敏捷项目组中尤为突出。为了提高持续集成的自动化程度,产生了很多开源的工具,这里我们主要关注windows下,基于.net开发环境。工具有:

1.CruiseControl.NET 持续集成工具,运行于服务器上,根据用户的配置,把很多零散的任务进行在一起,实现定时运行、固定时间运行等方式把用户配置起来的流程跑起来,比如从 SVN上更新代码、使用MSBuild编译工程或解决方案、使用代码分析工具对代码规范性进行检查、运行测试用例、最后把上面所有步骤的结果使用邮件等方 式发布给负责人。

2.MSBuild 微软.Net Framework环境中的build工具。

3.FxCop 微软提供的针对C#等托管语言代码分析工具。

4.NUnit, 单元测试工具。

5.NAnt。.Net下的构建工具,目前只提供命令行模式,他的主要作用是通过配置,实现很多自动化功能。比如在build之前要进行其他清理工作,build之后要进行其他复制等其他工作,都可以固定的在配置文件中配置。他把更多小的任务集成了在一起。

以上这些工具,都可以通过CC.Net很好的组合在一起协同工作。

CC.Net功能:

在实验部署中,CruiseControl.NET集成了如下功能:

MsBuild集成编译
电子邮件提醒功能
Nunit单元测试报告
自动发布网站应用程序到指定目录

好处:

我认为使用持续集成的最大的好处是减少风险。不连续,不及时的集成的最大的问题是,很难预测项目要花多长时间,最糟的是,你不知道你究竟还要走多远。结果就是,你想个盲人一样置身于项目的大森林里,虽然你是个很少迷路的人。

持续集成完全能解决这些问题,没有漫长的集成工作,所有的盲点尽在掌握。无论什么时候你都知道你在那儿,你的工作是什么,问题是什么,那些bug就跟虱子矗立在光头一样那么明显。

持续集成不能完全摆脱bug,但它能让你尽快找到并消灭它们。

持续集成的效果与你的测试集的质量是成正相关的,要找出那些很深层次的bug,意味着你得不断提高你测试集的质量。


果你使用持续集成,它就能帮你跨越频繁的部署的障碍。频繁的部署是很有意义的,它能让你的用户很快的发现系统新的特性,然后给你针对这些特性迅速的反馈,
这样就能让你的开发循环有更好的协同工作。这就能让你的用户和你们的开发能更好的沟通——我认为这是个成功的软件开发中最大的障碍。

我之前使用CC.Net的感受:

使用上感受,使用CC.Net编译时间较长,非特别要求情况下,我一般采用手工编译发布方式。

使用CC.Net可以将项目中有更改的部分进行打包,下载,发布的时候只需要将打包下载起来的文件发布出去即可。

详细参考资料:

http://dragon.cnblogs.com/archive/2005/07/29/203189.html

http://www.cnblogs.com/gadfly/archive/2010/12/08/1900292.html

http://www.cnblogs.com/hjf1223/archive/2006/04/13/374655.html

http://www.51crazy.net/Article/234.aspx

http://www.cnblogs.com/jillzhang/archive/2008/03/03/1089099.html

http://www.uml.org.cn/jchgj/200904083.asp

http://mylovejsj.blog.163.com/blog/static/38673975201041110425135/

http://www.iteye.com/topic/336142

http://wenku.baidu.com/view/4fc8d3da50e2524de5187ed3.html

原文地址:http://blog.163.com/suweidian@126/blog/static/86212753201121085753689/

(转)持续化集成工具CruiseControl.NET的更多相关文章

  1. jenkins持续化集成工具 centos 6.5安装

    1.wget 下载war包,即一键部署包 wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war 2.java命令安装 java -j ...

  2. 持续化集成Jenkins的系统配置

    最近在研究selenium2自动化测试,用到持续化集成jenkins.由于之前仅限于使用,而没有真正动手配置过,所以现在学习从零开始,搭建持续化集成,故而有了这篇博客. 先介绍一下项目持续集成测试,这 ...

  3. Docker持续化集成和测试

     基于容器的自动构建:Docker在美团的应用 https://linux.cn/article-5465-1.html Docker持续化集成和测试,关于docker-in-docker问题 h ...

  4. Github 持续化集成 工作流 Npm包自动化发布

    Github 持续化集成 工作流 Npm包自动化发布 简介   持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个: 快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误 ...

  5. Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图

    Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图 转载自:原创 IT综合 作者:百联达 时间:2017-05-09 15:48:08 41 ...

  6. Jenkins持续化集成

    Jenkins介绍 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 安装环境 操作系统:lin ...

  7. jenkins+maven+git+ 邮件自动转发 持续化集成 图文教程

    1.所需要的插件,安装plugin ,进入mangae Jenkins→ manage Plugins, 切换到Available tab, 选择如下plugin 安装 Gitplugin, GitH ...

  8. 运用 jenkins 让你的项目优雅的持续化集成

    0.到系统管理->系统设置 1.安装插件 Publish over SSH 2.配置 Publish over SSH 参数 1.pass 是私钥密码,此私钥文件放在安装 jenkins 的主机 ...

  9. tomcat+jenkins搭建持续化集成环境

    一.下载安装Tomcat 1.进入官网http://tomcat.apache.org/ 2.解压缩文件到指定目录 3.设置环境变量 a.新建CATALINA_HOME b.在path中设置 %CAT ...

随机推荐

  1. writing

    1.作文类型和结构2.作文的四个评分标准3.作文的常用句型4.作文的逻辑观点 大作文分为几类:1.A类(Argument): 这类作文实际上是比较常见的,比如:Caring for children ...

  2. jquery定时滑出可最小化的底部提示层

    效果预览:http://keleyi.com/keleyi/phtml/jqtexiao/index.htm当打开页面或者刷新页面后等待两秒钟,会在底部滑出可最小化的提示层.滑出层半透明,可关闭再现. ...

  3. ASP.NET MVC学习之模型绑定(1)

    一.前言 下面我们将开始学习模型绑定,通过下面的知识我们将能够理解ASP.NET MVC模型的模型绑定器是如何将http请求中的数据转换成模型的,其中我们重点讲述的是表单数据. 二.正文 1.简单类型 ...

  4. x264_param_t结构体参数分析

    转自:http://blog.chinaunix.net/uid-17053077-id-1987955.html 参考网上的一些资料,结合个人的理解,对x264中x264_param_t结构体作了初 ...

  5. Tiny6410声卡驱动——录音与回放

    在Linux下,音频设备程序的实现与文件系统的操作密切相关.Linux将各种设备以文件的形式给出统一的接口,这样的设计使得对设备的编程与对文件的操作基本相同,对Linux内核的系统调用也基本一致,从而 ...

  6. mongodb remove删除文档的用法

    在看<mongoDB权威指南>中,在删除文档时,出现问题: 书中介绍:采用db.foo.remove()命令则可以删除foo集合中所有的文档,但是在执行该命令时,shell客户端却报错. ...

  7. CentOS5&period;4下安装codeblocks 12&period;11

    centos6.3下安装codeblock简单多了,这些开源的软件也都在不断进步.原来装过codeblocks10.05,忘了,这次安装又花了我半天时间,最后总算搞定. 先是安装了wxGTK-2.8. ...

  8. 基于TcpListener实现最简单的http服务器

    最近实现一套简单的网络程序.为了查看程序内部的变量,方便调试.就在想搞一个最最简单的方式.第一个想到写文件,日志.这个不实时,而且打开麻烦,pass .于是想到用网络输出.本来是想写成c/s模式,想着 ...

  9. Luogu P5290 &sol; LOJ3052 【&lbrack;十二省联考2019&rsqb;春节十二响】

    联考Day2T2...多亏有这题...让我水了85精准翻盘进了A队... 题目大意: 挺简单的就不说了吧...(这怎么简述啊) 题目思路: 看到题的时候想了半天,不知道怎么搞.把样例画到演草纸上之后又 ...

  10. 浅谈MySQL备份字符集的问题

    1 引子 MySQL备份时选择字符集是一个难题,特别是字符集不定的业务.mysqldump默认使用utf8,而官方也推荐使用utf8.但实际上,对于中文,部分相当一部分gbk编码字符没有对应的unic ...