DailyBuild全攻略

请大家看最新版的,最新版下载地址:

http://www.snailsoft.com/download/db1.2.rar

不负重望,终于完工了.如果遇到什么问题,大家一起来测试哦.我就躲在一边休息了想想这些日子,梦里都是写程序,没有点累是假的. 言归正传吧.

随着软件开发规模的扩大,软件内在bug的增多,以致于项目经理和开发者被许多无名bug和各种故障弄得焦头烂额,甚至为了一个小问题,而到会议室开会。于是软件的发布日期被无限地延期。可是这一切如果有了DailyBuild,项目经理只要在上班前沏上一壶茶,然后在命令提示符下敲入一个命令,这一切便尽在掌握之中。不信,请跟我来。

DailyBuild中文译作“每日构建”是利用一序列软件,对进行中的项目进行监控,如果发现服务器上共享的项目文件有所改动,便会再次编译,得到软件的最新版本,并且生成测试和代码规范文档。本文将带你步入.NET下每日构建的佳境。


一.  系統需求

Win2000 以上操作系统   VS.NET 2003 被安裝

二.  相关工具安裝說明

    为了能够实现功能,以下的软件是必须下载安装的(为了程序运行,请载最新版本),后边有相关的下载地址.

1.     Nant

http://nant.sourceforge.net/builds/

2.     NAntContrib

http://nantcontrib.sourceforge.net/nightly/builds/

3.     NUnit  

http://www.nunit.org/

4.     Visual Source Safe

http://www.microsoft.com/vstudio

5.      FxCop

http://www.gotdotnet.com/team/fxcop/

6.     CruiseControl.NET

http://ccnet.thoughtworks.com

7.     NUnit2report(NUnit生成的XML文件“样式”成HTML文件)

http://sourceforge.net/projects/nunit2report/

三.  制作说明

首先安装上边所列出来的所有软件.

程序运行总框架如下图:


1 整个程序框架图

说明:

cc.net 监控VSS里的变化,如果发现有变化,cc.net立即调出NAnt将最新改动的VSS里的数据拷贝到本地并且进行编译,将结果输出.生成DLL程序集或者EXE可执行文件.NAnt将得到的将要执行单元测试的程序集DLL文件交给NUnit检测并且生成XML文件(为了方便我在这里又将XML文件样式HTML文件,打开即以图形方式查看.NAnt并且将得到的程序集交给FxCop检查,并生成XML文件,看编码是否规范.  这一切都是自动的,只要将CC.NET打开,这一切就是自动化的,需要的只是你的眼睛来看结果而已.

 

1.VS建立两个工程

VS编译成两个程序集,TestUNit.dll项目所需要的程序集,Test.dll单元测试用例.

VSD:\ClientVSS下新建 (类库)工程Project 代码如下:


2 程序集图


编译生成TestNUnit.dll文件.

再打开VS生成类库和TestProject工程,引用上边生成的TestNUnit.dll文件和NUnit:

3  添加引用NUnit

代码如下:




4 测试样例图

编译生成 test.dll程序集(作为单元测试用)

 

2.建立VSS服务器

打开VSS的服务端,添加帐号 coolbug,密码:******,然后创建数据库,这里数据库用的是安装的自带的srcsafe.ini文件.然后打开客户端,将刚建立的两个工程加到拖到服务器上.



5 建立VSS服务器图

并将所有项check in到服务器上.

 

3.建立与所有相关的default.build文件

D:\test 下建立 default.build  文件,代码如下(nunit2report bin下的文件都拷贝到nantBIN目录里)

6 Default.build文件内容图

为了要将文件全放到记事本里,排版有点不好看.

因为fxcopcmd的参数在exec task里不能指定,所以必须再写一个fxcop.bat文件(此是本人的独创感觉很很不错,如果大家有什么更好的方法可以MAIL给我),内容如下:



7  fxcop.bat 文件内容图

为了fxcopcmd能够运行,只有将fxcopcmd.exe加到系统的环境变量中去,我发现这个不像nant那么好加,每次加完后,重启系统后还要重新加到环境变量中去,谁有更好的方法?

测试这个build文件,得到下图所示结果:






8 编译default.build文件结果图

这时候在d:\test文件夹里将会得到结果.

 

4. CC.Net主控制

先进入CC.Net的安装目录,进入Server文件夹,新建一个ccnet.config文件(如果里边有则修改之),修改如下(我以C#里的注释方式”//”进行注释,大家调试的时候,删掉前边的”//”一行的内容即可):




9 CC.Net.config文件内容图

现在打开 D:\test 文件夹,发现只有build文件和引用的bat文件,其他要得到的信息都没有.如下:




10  还没得到文件时的d:\test

这时,打开CC.Net目录里 ..\server 下的 StartCCNet.bat 文件,双击,(意最好只双击一次,然后不要关掉,否则第二次打开的时候,会一闪而过,所有的结果与错误都在ccnet.log文件里,如果你想用WEB的方式查看,可以再配置一下ccnet.config文件)如图所示:




11 运行StartCCNet.bat时的图

这个时候,d:\test 文件夹里还是那两个文件,为什么.因为VSS服务器里还没有改动情况,现在我们打开VSS客户端,并随便check in一个文件,D:\Test文件夹下得到如下文件:




12 得到文件时的d:\test

打开这些文件看看:

Local文件夹里的结构和VSS客户端上的顺序一样,当然得要看你Build文件里是取哪个目录.result文件夹里只有dllexe文件. 先打开test.dll-results.xml文件看看.




13 NUnit生成的XML文档

 

最后生成的网页文件如下:




14  NUnit生成的XML文档转换成HTML文件

呵呵,真酷,都通过测试了.100%通过哦.

再看看FxCop生成的XML文件:




15 FxCop生成的XML文件

  所遇到的问题及版
由于时间仓促,请大家一起来测试,如果有Bug请Blog上提出来或者发到我的邮箱coolbug@126.com.

 

 

posted on 2004-07-27 15:36  CoolBug  阅读(18071)  评论(54编辑  收藏  举报