CI continus intergrtion与.net 持续集成

CI也可以在基于开源的Cruise Control基础上开发,实现了源码的自动监视,获取,编译,静态检查,圈复杂度检查,并能和autospace写作,进行自动化的集成测试和系统测试。5月初开始在公司推广持续集成,目前我们输出的代码都是严格经过ICP检查的,包括checkstyle检查,pmd检查,findbugs检查,圈复杂度检查等。

java平台下:Linux + Maven + Ant + Archiva + Hudson + SVN + Tomcat

 

-------------------------------------------------————————————————————————————————————————————————————————————

 

 以下是在.NET环境中建立与运行持续集成方法所必需的几本工具列表:
  ·源代码控制:这允许多个程序员通过提交、调出和添加新文件对应用软件代码的协同工作,Visual SourceSafe是一种流行的选择,但还有很多更好的选择,比如Subversion,IBM's Rational ClearCase,CVS和SourceGear Vault。
  ·编译器:您可以使用.NET框架的命令行编译器、Visual Studio .NET或其他的集成开发环境。
  ·持续集成服务器:这是构建过程的主要控制器,它负责监控为程序员提交代码使用的源代码资源库,当加入新的代码时,最新的版本将被取回,构建过程也就取消了,持续集成过程的最后一步是通过电子邮件、网页等形式向整个团队通报构建的状态。有很多工具都可以实现这一步骤,我比较喜欢CruiseControl.NET,另一个选择是免费的Draco.NET,您需要一个专门的服务器来实现这一步骤。
  ·自动构建工具:用于源代码的自动构建的工具是必不可少的,免费的NAnt是一个很棒的选择,或者您可以使用一个程序生成工具,如果您使用的是CruiseControl.NET的最新版本,则可以和Visual SourceSafe直接对话,这样就不需要像NAnt这样的自动构建工具了。
  ·选择性单元测试:在集成阶段应用单元测试可以帮助验证正常工作的代码,一个非常出色的工具是NUnit,它是免费的而且在网上有大量的相关信息。
  注意:安装与设置这些工具的内容已经超出了这篇文章的范围,但是每个产品的网络社区所提供的文档中包含了您使用这些产品所需的信息。
  您准备好使用持续集成了么?
  持续集成并不是针对缺陷代码的灵丹妙药,但它绝对可以释放出您宝贵的时间去应付更紧张的问题,开发人员依然需要编写强壮的代码并进行良好的单元测试,另外,代码应该按照规则进行提交(我建议每日提交),然而,使用持续集成可以帮助您验证代码、测试、设计等的质量,持续集成能帮助您节省出原本用于构建的时间,但您需要一些时间去设置和管理专门用于持续集成的服务器。

 

-------------------------------------------------————————————————————————————————————————————————————————————持续集成 .net手册
一、概念
martin fowler的文章:continuous integration 中文翻译:持续集成

二、工具
传统工具:visualstudio.net,visualsourcesafe,rational clearcase

自动编译工具:nant,nantcontrib

回归测试工具:nunit

代码检查工具:fxcop

持续集成工具:cruisecontrol.net

三、步骤
cruisecontrol.net监控远程版本控制系统的变化

变化发生时cruisecontrol.net调用编译工具进行编译(nant或visualstudio.net)

编译成功后调用nunit进行回归测试

编译成功后调用fxcop进行代码检查

完毕后将编译结果、测试结果、代码检查结果发送至开发人员、主管经理,并发布至网站

图示:



所有这一切都是按照编制好的脚本自动进行的

四、实施示例
目前我们使用的是clearcase

主控软件为cruisecontrol.net,其脚本文件为ccnet.config

配置远程版本控制系统

- <sourcecontrol type="clearcase">
<viewpath>d:\cc_view\use_tech_dept\platform\nucleus\2产品开发\2实现\nucleus1.0\source</viewpath>
<uselabel>false</uselabel>
</sourcecontrol>
配置编译工具

- <build type="nant">
<executable>f:\software\agile.net\nant-0.85-nightly\bin\nant.exe</executable>
<basedirectory>f:\software\agile.net\nant-0.85-nightly\bin</basedirectory>
<buildfile>y:\nucleus.build</buildfile>
<logger>nant.core.xmllogger</logger>
- <targetlist>
<target>build</target>
<target>fxcop</target>
</targetlist>
</build>
配置测试用例

- <tasks>
- <nunit>
<path>d:\program files\nunit 2.2\bin\nunit-console.exe</path>
- <assemblies>
<assembly>y:\newpdobject\testnewpdobject\bin\debug\testnewpdobject.exe</assembly>
</assemblies>
</nunit>
</tasks>
配置报告形式
<publishers>
- <xmllogger>
<logdir>..\web\log</logdir>
- <mergefiles>
<file>y:\nucleus.xml</file>
</mergefiles>
</xmllogger>
- <email from="ajaxchelsea@163.com" mailhost="163.com" includedetails="true">
<projecturl>http://ajaxchelsea/ccnetweb</projecturl>
- <users>
<user name="buildguru" group="buildmaster" address="ajaxchelsea@163.com" />
<user name="chelsea" group="developers" address="chelsea@chelseafc.com" />
<user name="ajax" group="developers" address="ajax@ajaxfc.com" />
</users>
- <groups>
<group name="developers" notification="always" />
<group name="buildmaster" notification="always" />
</groups>
</email>
</publishers>
其中cruisecontrol.net没有提供代码检查工具fxcop的支持,其文档建议使用nant的<exec>任务来调用fxcop,直到出现<fxcop>的task,因此,需要配置nant的脚本文件:
- <target name="fxcop" depends="build">
<exec program="d:\program files\microsoft fxcop 1.30\fxcopcmd.exe" commandline="/p:y:\nucleus.fxcop /o:y:\nucleus.xml" failοnerrοr="false" />
</target>
五、几点提示
cruisecontrol.net会自动根据本地clearcase的view监控远程vob
其实除了监控远程版本控制系统外其它的任务都可以由nant来完成,ccnet只负责监控变化并调用nant即可
可以直接为ccnet配置visualstudio.net解决方案"<build type="devenv" solutionfile="d:\dev\myproject\myproject.sln" configuration="debug" /> ",但这样就无法配置fxcop了,至少目前如此;
最好避免中文路径,否则就需要手工为几个xml格式的文件,如.csproj等加入编码方式“<?xml version="1.0" encoding="utf-8" ?> ”,或者将中文路径映射为虚拟硬盘:“subst y: "d:\cc_view\use_tech_dept\platform\nucleus\2产品开发\2实现\nucleus1.0\source"”
nunit有visualstudio.net插件nunitaddin,fxcop等亦可以配置为visualstudio外部工具,推荐使用
各种工具的安装、使用,在各自的文档里都非常详细,网上亦有无数资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值