快速上手Cruisecontrol

1        Cruisecontrol的概述

 

    CruiseControl是一种持续集成过程的框架,包括了邮件通知,ant和各种源码控制工具的插件。并提供web接口,用于查看当前和以前的build的结果。

 

2       Cruisecontrol的安装

2.1       下载CruiseControl
CruiseControl
目前提供的是源码,需要我们手工进行创建。网址:http://prdownloads.sourceforge.net/cruisecontrol/cruisecontrol-2.2.zip?download

 

2.2       创建安装目录

 

CruiseControl源码拷贝到特定目录该目录为INSTALL_DIR,该目录下有三个子目录docsmainreporting(注意:在main/docs/helloworld下有一个例子,我 们可以参考。)

 

2.3       设置环境变量

 

INSTALL_DIR/main/bin添加到系统的环境变量PATH中去。

 

2.4       创建工作目录

 

创建工作目录为D:/CC-WORKSPACE,下面称之为WORK_DIR

 

WORK_DIR/logs          CCbuild loop过程中产生日志所在目录
WORK_DIR/artifacts     CC
build loop过程中产生需要保存的一些

 

                    文件所在目录          

 

这步不是官方文挡要求的,但构建良好的目录结构对于开发和配置都非常重要。

 

3       Cruisecontrol的配置

3.1   reporting部分的配置
reporting部分的配置分三个步骤,修改jsp,创建override.properties,打包reporting部分文件并在weblogic上部署。

 

3.1.1   修改jsp文件

 

修改INSTALL_DIR/reporting/jsp/buildresults.jsp文件,将

 

<%@ taglib uri="/WEB-INF/cruisecontrol-jsp11.tld" prefix="cruisecontrol"%>

 

修改为

 

<%@ taglib uri="/WEB-INF/cruisecontrol-jsp12.tld" prefix="cruisecontrol"%>

 

3.1.2   创建override.properties

 

INSTALL_DIR/reporting/jsp 目录下创建override.properties文件,

 

内容如下:

 

user.log.dir=D://CC-WORKSPACE//logs

 

user.build.status.file=status.txt

 

cruise.build.artifacts.dir=D://CC-WORKSPACE//artifacts

 

3.1.3   打包web文件

 

执行INSTALL_DIR/reporting/jsp目录下的build.bat文件,执行成功后在dist目录下找到cruisecontrol.war文件,并将该文件部署到weblogic上,Weblogic部署部分我就不写了。

 

 

 

3.2   Mian部分配置

 

Mian部分配置只有一步,就是创建config.xml文件。

 

在工作目录(work_dir)下创建两个文件congfig.xmlstartcc.bat文件,config.xml文件是必须的,startcc文件是可选,因为startcc.bat纯粹是为了启动cc方便而创建的文件。

 

Startcc.bat文件内容如下:

 

cruisecontrol -port 8000

 

很短,但使用起来很方便,双击一下就启动cc 了。;-)

 

config.xml是由cc规定一些xml标签组成,我对一些常用的标签说明一下,具体还要去看cc提供的官方文档INSTALL_DIR/doc)。

 

l        <project/> 定义一个项目

 

l        <bootstrappers>

 

     <currentbuildstatusbootstrapper file="logs/first/status.txt" />

 

</bootstrappers>

 

定义build状态的日志文件。

 

l        <modificationset requiremodification="false"  quietperiod="60" >

 

      <vss ssdir="D:/vss/win32"             //注意:ssdir中不能有空格

 

         login="fengtianhao,fengtianhao"     //用户明,密码

 

         vsspath="/devtest"                //项目路径

 

         serverPath="D:/Program Files/vss"  //就是包含srcsafe.ini的目录

 

         dateformat="yy-MM-dd"         //vss的日期格式

 

         timeformat="HH:mm"           //vss的时间格式

 

         />

 

           </modificationset>

 

           检查vss文件系统是否有变化,如果有,则在web页面显示变化过的文件名。

 

l        <schedule interval="60" >

 

定义build时间间隔为60

 

<ant buildfile="build.xml" antscript="D:/ant/bin/ant.bat" target="deploy.app" time="1916"  antworkingdir="D:/new97_prj/NEW97_PRJ" uselogger="false">

 

      <jvmarg arg="-server" />

 

      <jvmarg arg="-Xms64m" />

 

      <jvmarg arg="-Xmx256m" />

 

</ant>

 

指定ant 的相关信息。buildfile定义build所需要的build.xml文件,antscript指定ant的启动脚本,antworkingdir指定ant的工作 target指定本次的build的目标,time指定build目标的运行时间(time也可以换成multiple,两者只能取其一)。<jvmarg>指定cc运行时的最大和最小内存。

 

      </schedule>

 

l        <log dir="logs/first">

 

       <merge dir="jsp/target/testresults"/>

 

    </log>

 

   log标签的dir属性指定日志目录。merge标签的dir属性指定需要被合并文件的路径,指定路径下的文件将会与日志文件合并,一般需要合并的文件是测试结果文件,这需要注意的地方是指定路径下的文件都要被合并到日志文件中,也就是说,为了不影响cc的日志文件的准确性,在生成每次的测试结果之前需要先把上次的测试结果删除。

 

l        <publishers>

 

       <artifactspublisher dest="artifacts/first" dir="jsp/target/testresults"/>

 

      </publishers>

 

  publishers的功能主要是发布build结果,例如邮件通知等,我们主要用到的功能是artifactspublisher所定义的功能,也就是ccbuild过程中产生的文件发布。在merge标签中我们已经知道,测试日志是ccbuild过程中产生的文件,而且我们每次我们都要删除上次的测试结果,这里cc提供了一种机制让你保存测试结果,就是利用artifactspublisher标签。

 

  Dest定义目标目录,dir定义文件存储的起始目录。所有的文件会被ccdir目录copydest目录。被copydest目录的文件会放在以当前时间命名的文件夹中。这里dir定义的是测试日志文件的所在目录。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读更多
个人分类: 测试
上一篇持续集成与测试自动化
下一篇Ant实践
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭