求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
DailyBuild全攻略
 
作者 CoolBug,火龙果软件    发布于 2013-11-25
 

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

随着软件开发规模的扩大,软件内在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单元测试用例.

用VS在D:\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下的文件都拷贝到nant的BIN目录里)

图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文件夹里只有dll和exe文件. 先打开test.dll-results.xml文件看看.

图13 NUnit生成的XML文档

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

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

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

再看看FxCop生成的XML文件:

图15 FxCop生成的XML文件

四 所遇到的问题及版

由于时间仓促,请大家一起来测试,

相关文章

为什么要做持续部署?
剖析“持续交付”:五个核心实践
集成与构建指南
持续集成工具的选择-装载
相关文档

持续集成介绍
使用Hudson持续集成
持续集成之-依赖管理
IPD集成产品开发管理
相关课程

配置管理、日构建与持续集成
软件架构设计方法、案例与实践
单元测试、重构及持续集成
基于Android的单元、性能测试
 
分享到
 
 


集成与构建指南
项目管理:Maven让事情变得简单
持续集成工具hudson
持续集成
Maven权威指南
程序集(UML中的包)之间循环
更多...   


产品发布管理
配置管理方法、实践、工具
多层次集成配置管理
使用CC与CQ进行项目实践
CVS与配置管理
Subversion管理员


海航股份 重构及持续集成
电研华源 设计原理、建模与重构
软件配置管理日构建及持续集成
单元测试、重构及持续集成
中国软件研发中心 单元测试与重构
单元测试、重构和持续集成实践
罗克韦尔 C++单元测试+重构+Gtest
更多...