|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。延续集成.Net手册
1、观点
MartinFowler的文章:ContinuousIntegration中文翻译:延续集成
2、工具
传统工具:VisualStudio.Net,VisualSourceSafe,RationalClearCase
主动编译工具:NAnt,NAntContrib
回回测试工具:NUnit
代码反省工具:FxCop
延续集成工具:CruiseControl.Net
3、步骤
CruiseControl.Net监控远程版本把持体系的变更
变更产生时CruiseControl.Net挪用编译工具举行编译(NAnt或VisualStudio.Net)
编译乐成后挪用NUnit举行回回测试
编译乐成后挪用FxCop举行代码反省
终了后将编译了局、测试了局、代码反省了局发送至开辟职员、主管司理,并公布至网站
图示:
一切这统统都是依照体例好的剧本主动举行的
4、实行示例
今朝我们利用的是ClearCase
主控软件为CruiseControl.Net,其剧本文件为ccnet.config
设置远程版本把持体系
-<sourcecontroltype="clearCase">
<viewPath>D:cc_viewUSE_TECH_DEPTPlatformNucleus2产物开辟2完成Nucleus1.0Source</viewPath>
<useLabel>false</useLabel>
</sourcecontrol>
设置编译工具
-<buildtype="nant">
<executable>F:softwareAgile.Net
ant-0.85-nightlyin
ant.exe</executable>
<baseDirectory>F:softwareAgile.Net
ant-0.85-nightlyin</baseDirectory>
<buildFile>Y:
ucleus.build</buildFile>
<logger>NAnt.Core.XmlLogger</logger>
-<targetList>
<target>build</target>
<target>fxcop</target>
</targetList>
</build>
设置测试用例
-<tasks>
-<nunit>
<path>D:ProgramFilesNUnit2.2in
unit-console.exe</path>
-<assemblies>
<assembly>Y:NewPDObjectTestNewPDObjectinDebugTestNewPDObject.exe</assembly>
</assemblies>
</nunit>
</tasks>
设置呈报情势
<publishers>
-<xmllogger>
<logDir>..weblog</logDir>
-<mergeFiles>
<file>Y:
ucleus.xml</file>
</mergeFiles>
</xmllogger>
-<emailfrom="ajaxchelsea@163.com"mailhost="163.com"includeDetails="TRUE">
<projectUrl>http://ajaxchelsea/ccnetweb</projectUrl>
-<users>
<username="BuildGuru"group="buildmaster"address="ajaxchelsea@163.com"/>
<username="chelsea"group="developers"address="chelsea@chelseafc.com"/>
<username="ajax"group="developers"address="ajax@ajaxfc.com"/>
</users>
-<groups>
<groupname="developers"notification="always"/>
<groupname="buildmaster"notification="always"/>
</groups>
</email>
</publishers>
个中CruiseControl.Net没有供应代码反省工具FxCop的撑持,其文档倡议利用NAnt的<exec>义务来挪用FxCop,直到呈现<fxcop>的Task,因而,必要设置NAnt的剧本文件:
-<targetname="fxcop"depends="build">
<execprogram="D:ProgramFilesMicrosoftFxCop1.30fxcopcmd.exe"commandline="/p:Y:
ucleus.fxcop/o:Y:
ucleus.xml"failonerror="false"/>
</target>
5、几点提醒
CruiseControl.Net会主动依据当地ClearCase的View监控远程VOB
实在除监控远程版本把持体系外别的的义务都能够由NAnt来完成,CCNet只卖力监控变更并挪用NAnt便可
能够间接为CCNet设置VisualStudio.Net办理计划"<buildtype="devenv"solutionfile="D:devMyProjectMyProject.sln"configuration="debug"/>",但如许就没法设置FxCop了,最少今朝云云;
最好制止中文路径,不然就必要手工为几个Xml格局的文件,如.csproj等到场编码体例“<?xmlversion="1.0"encoding="UTF-8"?>”,大概将中文路径映照为假造硬盘:“substY:"D:cc_viewUSE_TECH_DEPTPlatformNucleus2产物开辟2完成Nucleus1.0Source"”
NUnit有VisualStudio.Net插件NUnitAddin,FxCop等亦能够设置为VisualStudio内部工具,保举利用
各类工具的安装、利用,在各自的文档里都十分具体,网上亦有没有数资本
6、参考材料
DailyBuild全攻略
Draco.Net
来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着! |
|