DailyBuild全攻略.docx
- 文档编号:10307001
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:19
- 大小:439.82KB
DailyBuild全攻略.docx
《DailyBuild全攻略.docx》由会员分享,可在线阅读,更多相关《DailyBuild全攻略.docx(19页珍藏版)》请在冰豆网上搜索。
DailyBuild全攻略
DailyBuild全攻略
随着软件开发规模的扩大,软件内在bug的增多,以致于项目经理和开发者被许多无名bug和各种故障弄得焦头烂额,甚至为了一个小问题,而到会议室开会。
于是软件的发布日期被无限地延期。
可是这一切如果有了DailyBuild,项目经理只要在下班前沏上一壶茶,然后在命令提示符下敲入一个命令,这一切便尽在掌握之中。
不信,请跟我来。
DailyBuild中文译作“每日构建”是利用一序列软件,对进行中的项目进行监控,如果发现服务器上共享的项目文件有所改动,便会再次编译,得到软件的最新版本,并且生成测试和代码规范文档。
本文将带你步入.NET下DailyBuild的佳境。
本文主要讲解的是如果将DailyBuild相关的一序列软件合作起来,考虑到篇幅大小,本文将对具体某一个软件的基础知识不作详解(关于基础一点的知识在
1.系統需求
Win2000以上操作系统,VS.NET2003必须被安裝。
2.相关工具說明
为了能够实现功能,以下的软件是必须下载安装的(为了程序能够正常运行,请载最新稳定版本),后边有相关的下载地址:
Nant
基于.NET的自动化编译工具。
NantContrib
增强Nant的工具。
Nunit
单元测试的一个比较优秀的工具。
http:
//www.nunit.org/
VisualSourceSafe
版本控制工具。
FxCop
代码规范检查工具。
CruiseControl.NET
项目监控工具。
NUnit2report
将NUnit生成的XML文件“样式”成HTML文件的一个小工具。
3.开始进入DailyBuild
首先安装上边所列出来的所有软件.
程序运行总框架如下图:
说明:
CC.Net监控VSS里的变化,如果发现有变化,CC.Net立即调出NAnt将最新改动的VSS里的数据拷贝到本地并且进行编译,将结果输出.生成DLL程序集或者EXE可执行文件.NAnt将得到的将要执行单元测试的程序集DLL文件交给NUnit检测并且生成XML文件(为了方便我在这里又将XML文件”样式”成HTML文件,打开即以图形方式查看)。
并且将得到的程序集交给FxCop检查,并生成XML文件,检查编码是否规范.只要将CC.NET打开,并且设置好配置文件,这一切就是自动化的,需要的只是你的眼睛来看结果而已。
建立两个工程
待测项目
打开VisualStudio2003,新建一个类库项目,名称为Bank,位置为D:
\ClientVSS,使之生成Bank.dll程序集。
代码如下:
usingSystem;
namespaceBank
{
publicclassAccount
{
privatefloatbalance;
publicvoidDeposit(floatamount)
{
balance+=amount;
}
publicvoidWithdraw(floatamount)
{
balance-=amount;
}
publicvoidTransferFunds(Accountdestination,floatamount)
{
destination.Deposit(amount);
Withdraw(amount);
}
publicfloatBalance
{
get{returnbalance;}
}
}
}
测试项目
安装Nunit,这样在工程就可以引用nunit.framework.
新建一个类库项目,命名为Test,位置为D:
\ClientVSS,使之生成Test.dll单元测试程序集。
在引用里将nunit.framework.引用进来,如下
写测试项目的目的是为了测试待测项目,所以待测项目也要引用进来,即引用刚刚生成的Bank.dll。
代码如下:
namespaceBank
{
usingNUnit.Framework;
[TestFixture]//类前必须加的
publicclassAccountTest
{
[Test]//方法前必须加的,只有加了Test的方法才能进行单元测试
publicvoidTransferFunds()
{
Accountsource=newAccount();
source.Deposit(200.00F);
Accountdestination=newAccount();
destination.Deposit(150.00F);
source.TransferFunds(destination,100.00F);
Assert.AreEqual(250.00F,destination.Balance);
Assert.AreEqual(100.00F,source.Balance);
}
}
}
编译生成Test.dll程序集(作为单元测试用)。
打开Nunit,将Test.dll添加到Nunit中,并且点击Run,则会得到如下图示:
绿色表示测试通过。
建立VSS服务器
VSS(VisualSourceSafe)是MicroSoft的一个版本控制软件,目前许多公司都在用。
打开VSS的服务端,添加帐号coolbug,密码:
111111,然后创建数据库,这里数据库用的是安装的自带的srcsafe.ini文件,并且将srcsafe.ini的目录共享(我这里将VSS目录设为默认共享即\\coolbug\vss$即可访问我机子上的srcsafe.ini文件,为了让客户端能够访问.然后打开客户端,将刚建立的两个工程加到服务器上。
并将所有项checkin到服务器上。
建立default.build文件
.build文件是靠NAnt来build的,所以先要配置好NAnt的环境。
要使Nant支持从VSS得到文件,就要将nantcontrib里bin目录里的文件都拷贝到Nant的bin目录里。
这样Nant就有了vssget这个task。
为了方便,将nant和fxcop的可执行文件添加到环境变量中去。
直接在以前的环境变量path的值后边加上:
分号和nant.exe的目录分号和fxcop.exe的目录。
如我的:
在命令提示符下打入命令:
Setpath=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:
\ProgramFiles\MicrosoftSQLServer\80\Tools\BINN;D:
\dailybuild\tools\nant\bin;D:
\dailybuild\tools\fxcop
然后直接就在命令提示符下敲入nant再回车,通过提示可以得出Nant有没有安装好。
将nunit2report\bin下的文件都拷贝到nant的BIN目录里,目的是为了将Nunit生成的XML文件转化成HTML文件,以.html的形式输出来。
在D:
\test下建立default.build文件,由前边的程序运行总框架可以看出,程序的的关键运行全部靠Nant来完成,而Nant是靠执行default.build文件来完成的。
所以说Nant的配置文件default.build也是最最关键的。
这里我以C#的注释方法注释,方便大家看。
在.build里注释同html里注释一样(
---->),如果让代码支持中文注释,则在XML的开头加上encoding=“gb2312“。
xmlversion="1.0"encoding="gb2312"?
>
/*
Default指将要运行的target的名字。
没有调用到的target将不执行。
*/
/*
待编译的解决方案
解决方案路径,及编译后输出路径。
这里一共是两个方案,即待测试项目和测试项目
*/
\test\local\bank\bank.sln"/> \test\result"/> \test\local\test\test.sln"/> \test\result"/> /* targett1 功能: 把VSS里$/下所有文件下载到本地机D: \test\local目录中 User: VSS用户名,password: VSS密码dbpath: 服务器上srcsafe.ini的路径。 */ \test\local"dbpath="\\coolbug\vss$\srcsafe.ini"path="$/"/> /* Targett2依赖于t1,只要当t1正确执行才能执行t2 功能: 编译方案bank.sln */ /* Targett3 功能: 编译方案test.sln */ /* Targetrun 功能: 这个.build文件将要执行的target Call: 指定本target将要调用的target的名字,以先后的顺序执行 */ /* Targetnunit 功能: 调用nunit并生成扩展名为.xml文件,以此来测试代码。 Outputdir: 输入路径设为根目录。 Tasknunit2report是将生成的xml文件转化成.html格式,文件查看。 */ \test\result\test.dll"/> /* Targetfxcop 功能: 调用fxcop这个文件来检测bank.dll这个文件是否符合事先定义好的代码规范,并以 test.xml文件输出。 Commandline: /f指要测试的程序集的路径和名称,/o指输出XML文件的地址和名称。 */ D: \test\result\bank.dll/o: test.xml"/> 为了要将文件全放到记事本里,排版有点不好看. 打开命令提示符,在d: \test下敲入nant并且回车,将会得到如下界面: 上图表示成功编译了,于是在d: \test文件夹里将会得到结果: Local文件夹: 存放从VSS里下载下来文件。 Result文件夹: 存放用Nant编译Local文件夹里的解决方案后得到的文件。 test.dll-results.xml: 为Nunit生成的xml文件。 Index.html: 是将test.dll-results.xml”样式“成html的结果。 Test.xml: 为FxCop生成的代码规范检测文件。 打开这些文件看看: Local文件夹里的结构和VSS客户端上的顺序一样,当然得要看你Build文件里是取哪个目录.result文件夹里只有编译完成的dll文件.先打开test.dll-results.xml文件看看. Index.html文件: 呵呵,真酷,100%通过。 Test.xml文件: 配置CC.Net 先进入CC.Net的安装目录,进入Server文件夹,新建一个ccnet.config文件(如果里边有则修改之),添加如下内容。 为了方便大家阅读,我还是以C#的注释方式注释,大家在build的时候可以将“/**/”中的内容删去。 //localhost/ccnet /* 功能: 监控VSS里是否有代码改动情况。 Ssdir: 本地机VSS的安装目录 Executable: 执行服务器上ss.exe文件 Project: 取得服务器上哪些文件 Username: VSS登陆用户名password: VSS登陆密码 */ \program\vss\ /* 功能: 让Nant去执行d: \test\default.build文件。 Executable: nant.exe文件的绝对路径。 baseDirectory: .build文件的目录。 buildFile: 将要build的文件的名字(nant一次只能执行一个.build文件)。 */ \dailybuild\tools\nant\bin\nant.exe \test 配置好ccnet.config文件后,双击StartCCNet.bat文件,(意最好只双击一次,然后不要关掉,否则第二次打开的时候,会一闪而过(要过一会儿才好),所有的结果与错误都在ccnet.log文件里,如果你想用WEB的方式查看或者发Mail给PM,可以再配置一下ccnet.config文件)。 代码没有改动时的情况如下: 将代码稍微改动一下,于是CC.NET立即监测到: 这样,CC.NET将调用Nant去执行default.build文件,将重新执行3.3操作。 并在d: \test里生成如3.3的一序列文件。 在这里就不一一再述。 4.小结 本文从DailyBuild的好处讲到相关软件的配置及最后生成结果的文件。 整体看来,DailyBuild的确是项目便捷,快速,稳定开发的利器。 工欲善其事,必先利其器,希望本文能对那些为项目的bug调试搞得焦头烂额的项目经理们起到抛砖引玉的作用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DailyBuild 攻略