每日构建系列(1):入门篇
2009-12-28 13:03 听风吹雨 阅读(7598) 评论(8) 编辑 收藏 举报关键词:Daily Build、CI、CCNet、CCTray、VSS、SVN、MSBuild、NAnt、NUnit、Email、FxCop、NCover、NCoverExplorer、RSS、SCM、UCM;产品、版本管理、基线、复合基线;每日构建、持续集成、编译、代码构建、单元测试、代码规范、代码覆盖率;软件测试、性能测试、功能测试、冒烟测试、回归测试、测试阶段、测试活动
1 简介
1.1. 每日构建的优点
每日构建(Daily Build)也可称为持续集成(Continuous Integration),强调完全自动化的、可重复的创建过程,其中包括每天运行多次的自动化测试。每日构建的作用日益显得重要。它让开发者可以每天进行系统集成,从而减少了开发过程中的集成问题。
持续集成可以减少集成阶段"捉虫"消耗的时间,从而最终提高生产力。它使得绝大多数bug在引入的同一天就可以被发现。而且,由于一天之中发生变动的部分并不多,所以可以很快找到出错的位置。
对开发人员而言,每日构建带来的好处就是签入即更新。
1.2. 每日构建系统的搭建说明
每日构建:DailyBuild;持续集成:continuous integration(CI);
概述:是在Windows 2003中做每日构建的,使用CruiseControl.Net自动从VSS服务器中检测并下载最新的源代码;其中使用NAnt来覆盖sln文件,这一步不是必须的,只不过是由于项目的特殊情况导致的;然后用MsBuild对解决方案自动编译;使用NUnit来进行单元测试;使用NAnt调用NCover和NCoverExplorer来统计代码覆盖率;利用FxCop来检测代码规范;利用CCTray可以对每日构建的情况进行监控,了解CruiseControl.Net的工作情况;并把构建的情况发邮件到指定的邮箱。
1.3. 每日构建所使用的工具
CCNet 1.4(每日构建工具&持续集成工具)
说到持续集成首先要讲到CCNet(CruiseControl.NET),它是一个DailyBuild工具,是通过配置ccnet.config来集成其它工具的;
CCTray 1.4(监控每日构建)
在CCNet的webdashboard目录,通过WEB的方式对当前的ccnet的工作情况进行反馈。但是通过CCTray可以更加方便的监视和管理构建过程。
这个是比较实用的,比如在局域网里面,我可以监控构建机器的构建情况;
Email(邮件通知)
webdashboard和CCTray都只能支持本地或者局域网,所以如果要真正远程监控(外网),那就要使用到邮件通知了;
CCNet本身就支持Email的发送,所以可以使用<email></email>标签对,注意,一定要配置好发送邮件的主机和端口号;
VSS 6.0(源代码版本管理工具)
其实也可以使用其它的版本管理软件,比如SVN等;
值得注意的是:源代码路径和安装VSS的路径;
MSBuild 2.0(代码构建工具)
MSBuild是在安装Framework2.0是已经包含的;
安装路径一般是:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe;
NUnit 2.4.8(单元测试工具)
这是一个比较通用的单元测试工具,很多的Net开发人员都是使用这个来作为单元测试,但是有多少人是会真正写单元测试的呢?题外话了。
其实ThoughtWorks也推出了一个集成测试工具:Selinumu,也是可以集成到CCNet的(废话),但是还没有使用,因为对集成测试还不是很了解;
FxCop 1.36(代码规范检测工具)
这是用来检测代码规范的,其中包括设计规范、命名规范、安全规范、互操作性等:http://hi.baidu.com/sharppoint/blog/item/1a9a7922c33d21f6d6cae266.html;
比较关心的是如何定义自己的规范;
NAnt-0.86-beta1(代码构建工具)
也是一个类似于MsBuild的,也尝试过用来编译代码,但是不成功;
不过里面也集成很多东西,也提供比较多的方法,比如文件的拷贝,执行bat文件等等,有比较多的内容值得挖掘;
NCover 2.1.2(代码覆盖率测试工具)
直接在ccnet.config里面就有一个<exec>标签来执行外部程序的,所以这里就直接使用了;
无法通过参数的设置来修改生成的文件Coverage.Xml的名称;
貌似NAnt是有对这个的支持的;
NCoverExplorer2.1.2(代码覆盖率的图像)
这个报告是建立在Coverage.Xml的基础上的,所以前面一定要生成好一份Coverage.Xml文件;
RSS(订阅)
这个貌似有点不实用,只要加个标签就可以生成一个XML了;
作者:听风吹雨
出处:
http://www.cnblogs.com/gaizai/
邮箱:gaizai@126.com
版权:本文版权归作者和博客园共有
转载:欢迎转载,必须保留原文链接
格言:不喜欢是因为不会 && 因为会所以喜欢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述