您的位置:首页 > 产品设计 > UI/UE

项目自动化之道-2.使用CruiseControl定时建构

2012-12-01 13:03 351 查看
定时建构可以迅速找到集成问题和失效测试问题,因为它是以规律的时间间隔运行的。各部分的程序员,只在本区域进行集成测试,而不会测试整个系统的集成测试情况。所以为了避免错误的累积,我们必须采用定时建构的方法,

一般而言,定是建构的步骤为:1.签出版本控制系统当前代码2.调用建构文件和测试代码3.建构结果写入日志文件。为了完成上述过程,在UNIx系统上,我们采用cron命令,在win系统下我们采用at命令。

Cron的使用方法为打开cron编辑器:crontab –e 输入执行参数 0 2 * * *build.sh。at的使用方法为at 02:00 /every c:\work\build.bat。这两者都表示在凌晨两点执行建构脚本。常用的建构工具有CruiseControl,下面我们学习如何使用CruiseControl。

现在开始搭建定时建构环境。在建构机器上建立目录builds,期间建立文件cc-build.xml、config.xml、checkout\userview、logs目录,其中cc-build.xml文件为下载最新代码的ant文件。定是构建运行时的流程为:1.删除上一次构建2.从svn签出最新命令3.运行构建。文件内容为:

<project name="cc-build" default="build"basedir="checkout">
         <targetname="build">
                   <deletedir="userview" />
                   <execexecutable="svn">
                            <argline=" checkout svn://127.0.0.1/userview/trunk userview"/>
                   </exec>
                   <antantfile="build.xml" dir="userview"target="test"/>
         </target>
</project>


执行上述文件为:ant -buildfile cc-build.xml。可见它首先删除了下载的userview代码,重新从svn服务器上下载最新版本代码,最后执行svn库里最新的build.xml文件的test target。

首先我们安装CC(cruiseControl),下载后执行安装完成,在更目录底下有文件cruisecontrol.bat,这个文件点击即可以开始CC自动构建。下面配置建构过程,CC的默认程序为config.xml文件,其结构为:

<cruisecontrol>
    <projectname="userview">
        <listeners>
           <currentbuildstatuslistener file="logs/${project.name}/listener.txt"/>
        </listeners>
        <modificationsetquietperiod="30">
                            <svnlocalworkingcopy="D:\www.dongsuqin.cn\builds\checkout\userview"/>
       </modificationset>
        <scheduleinterval="60">
            <antanthome="apache-ant-1.7.0"buildfile="D:\www.dongsuqin.cn\builds\cc-build.xml"target="build"/>
        </schedule>
 
        <logdir="logs/userview">
            <mergedir="projects/${project.name}/target/test-results"/>
        </log>
       <publishers><!--<currentbuildstatuspublisherfile="logs/userview/cbsp.txt" />-->
                   <htmlemailmailhost="126.smtp.com" logdir="logs/userview"returnaddress="gongqingkui@163.com"buildresutlurl="http://192.168.195.54:8080/cruisecontrol/buildresults/userview">
                            <mapalias="gong" address="gongqingkui@126.com" />
                            <failureaddress="gong" reportWhenFixed="true" />
                   </htmlemail>
         </publishers>
    </project>
</cruisecontrol>


上述代码,首先设定项目启动记录到listener.txt文件中,在设定监控检出目录,在设定每60秒执行一次自动构建,记录结果到test-result,发送失败结果到gongqingkui@163.com邮箱中。

上述代码完成后,在本地修改文件,提交到SVN服务器上,一分钟左右,自动构建过程开始执行,结果可以在本地通过访问http://192.168.195.54:8080/dashboard/tab/build/detail/userviewhttp://192.168.195.54:8080/cruisecontrol/buildresults/userview来查看。

参考

1. 使用Ant和批处理备份数据

2. JUnit下的测试和suite

3. Ant结构化程序设计和WEB程序发布

4. Ant的主要任务的语法

5. Ant脚本的详细配置

6. Subversion综述

7. 项目自动化之道-1.使用ant进行单步建构
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: