• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 持續集成 .Net手冊

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    持續集成 .Net手冊 一、概念 Martin Fowler的文章:Continuous Integration 中文翻譯:持續集成 二、工具 傳統工具:VisualStudio.Net,Visual SourceSafe , Rational ClearCase 自動編譯工具:NAnt,NAntContrib 回歸測試工具:NUnit 代碼檢查工具:FxCop
    持續集成 .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" 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了,至少目前如此;
    最好避免中文路徑,否則就需要手工為幾個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外部工具,推薦使用
    各種工具的安裝、使用,在各自的文檔里都非常詳細,網上亦有無數資源
    六、參考資料
    DailyBuild全攻略
    Draco.Net

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>