持續集成 .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
-
配置遠程版本控制系統
<viewPath>D:/cc_view/USE_TECH_DEPT/Platform/Nucleus/2產品開發/2實現/Nucleus1.0/Source</viewPath><useLabel>false</useLabel></sourcecontrol>
-
配置編譯工具
<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><target>build</target><target>fxcop</target></targetList></build>
-
配置測試用例
- 配置報告形式
<publishers><projectUrl>http://ajaxchelsea/ccnetweb</projectUrl></users><group name="developers" notification="always" /><group name="buildmaster" notification="always" /></groups></email></publishers>
- 其中CruiseControl.Net沒有提供代碼檢查工具FxCop的支持,其文檔建議使用NAnt的<exec>任務來調用FxCop,直到出現<fxcop>的Task,因此,需要配置NAnt的腳本文件:
<exec program="D:/Program Files/Microsoft FxCop 1.30/fxcopcmd.exe" commandline="/p:Y:/nucleus.fxcop /o:Y:/nucleus.xml" failonerror="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了,至少目前如此;
- ccnetservice.exe.config中有一句“<add key="ccnet.config" value="C:/Downloads/TestData/ccnet.config" /> ”應該是配置ccnet.config的路徑,但現在好像不管用,還得將ccnet.config放在server目錄下
- 最好避免中文路徑,否則就需要手工爲幾個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外部工具,推薦使用
- 各種工具的安裝、使用,在各自的文檔裏都非常詳細,網上亦有無數資源