• 自动化测试框架实践3CC


    1.CruiseControl官网:http://cruisecontrol.sourceforge.net/

    2.《Ant、SVN、CruiseControl每日构建 配置方法》 参见:http://www.uml.org.cn/pzgl/200803217.asp 

    一:ANT与SVN的集成
    ant:大家都知道,是基于java的build工具,不用多说。
    svn:目前流行的版本控制软件(架构?)。
    ant可以将svn集成进来,即:在ant的build.xml脚本中,定义svn的下载,进行动态编译,这是个好东东哦。
    脚本配置大致如下:
    <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpath="./lib/svnant.jar" />        
            <svn username="${svn_login}" password="${svn_password}" javahl="true">
                  <checkout url="${svn_url_ide_environment}" revision="HEAD" destPath="${ide.environment.srccode.dir}"/>
                  <checkout url="${svn_url_epos_project}" revision="HEAD" destPath="${ide.epos.project.srccode.dir}"/>
                </svn>
    然后配置环境变量ANT_HOME=D:\Work\Lib\apache-ant-1.6.4、并且在PATH中加入ANT的BIN目录,这样,才能在命令行中执行ant命令。
    写好build.xml后,兴冲冲的跑去CMD执行ant,哇,错得一塌糊涂,错误提示找不到javahl,这是啥东西,不管他,去http://subversion.tigris.org/下载一个“svnant”,我这边的版本是svnant 0[1].9.13,将压缩包根目录下面的全部DLL文件拷贝到system32目录下,再在命令行中执行ant,发现成功了,ant乖乖的开始从SVN服务器下载文件了。
    二:Ant、SVN、CruiseControl再集成
    在cruisecontrol中配置SVN选项:
           <bootstrappers>
                <svnbootstrapper localWorkingCopy="projects/${project.name}" />
            </bootstrappers>
            <modificationset quietperiod="30">
                <svn localWorkingCopy="projects/${project.name}"/>
            </modificationset>
    执行cruisecontrol.bat
    报错啦:net.sourceforge.cruisecontrol.CruiseControlException: Error executing SVN update command
    大伙可以去google和baidu查查,求助的帖子一大堆,就是没有解决办法(或是人家解决了不愿意说出来)。
    都到这份上,该发挥群众的智慧了。
    考虑到上面ANT和SVN集成的问题,首先想到的是,可能没有在环境变量中引入SVN的执行BIN。笔者安装的SVN客户端是TortoiseSVN,于是在配置环境变量SVN_HOME=D:/TortoiseSVN,然后加入PATH中……;%SVN_HOME%\BIN。
    再执行执行cruisecontrol.bat,TMMD,还是net.sourceforge.cruisecontrol.CruiseControlException: Error executing SVN update command
    发飙了,还是要错,不就SVN命令找不到嘛,这个好办,我们再来。
    还是去http://subversion.tigris.org/,下载svn-1.4.3-setup.exe,安装后,将SVN_HOME修改成Subversion的根目录(检查一下,在Subversion的BIN目录下,居然有SVN.EXE)。
    再执行执行cruisecontrol.bat,好了,成功了。

    3.借助CruiseControl完成持续集成,参考下文:http://www.javaranch.com/journal/200409/DrivingOnCruiseControl_Part1.html

    引用一篇Windows环境下的安装:持续集成服务器(CruiseControl)安装和配置 (参见:http://tech.it168.com/m/2008-05-05/200805051506316.shtml ),完成之后我自己修改总结。

    我使用的是CruiseControl-2.7.1

    CruiseControl:http://cruisecontrol.sourceforge.net/

    SVN:http://subversion.tigris.org/

    首先安装你的CruiseControl,你可以选择exe的文件下载,直接安装就可以,

    然后设置你的环境变量,将svn添加到你的环境变量的path中。

    CruiseControl安装后的目录结构是:

    其中CruiseControl(以下简称CC)自带ant1.7.0;文档在docs目录下,这里面包括config.xml的相关的参数设置说明;logs下面包括日志信息,可以通过在config.xml中指定日志路径和名称;projects下面放的是需要进行持续集成的项目,lib目录中放有cruisecontrol.jar和其他运行需要的jar;webapps下是cruisecontrol build结果的网站,可以通过访问 http://127.0.0.1:8080/dashboard来进行对你的项目进行编译发布到你指定的web容器上。

    以下是我的一个项目的config.xml文件的配置:

    xml 代码

    1.<cruisecontrol>
    2.<!--这个地方的项目名称要和你的projects目录下的项目名称一样-->
    3. <project name="potato">
    4. <listeners>
    5. <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
    6. </listeners>
    7.
    8. <bootstrappers>
    9. <svnbootstrapper localWorkingCopy="projects/${project.name}" username="test" password="test" />
    10. </bootstrappers>
    11.
    12. <modificationset quietperiod="60">
    13. <svn localWorkingCopy="projects/${project.name}" username="test" password="test" />
    14. </modificationset>
    15.
    16. <schedule interval="3600">
    17.<!--这个地方配置的是使用ant来进行编译,后面的target是调用ant的那个任务,最后面的属性文件是我用来配置我的tomcat目录的,build.xml文件就是你工程下面的build文件-->
    18. <ant anthome="apache-ant-1.7.0" time="0400" buildfile="projects/${project.name}/build.xml" target="deploy" propertyfile="projects/${project.name}/ant.properties"/>
    19. </schedule>
    20.
    21. <log>
    22. <!--merge dir="projects/${project.name}/target/test-results"/-->
    23. <!--merge file="projects/${project.name}/dist/checkstyle.xml"/-->
    24. </log>
    25.
    26. <publishers>
    27. <onsuccess>
    28. <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/dist/i941ok.war"/>
    29. </onsuccess>
    30. <htmlemail mailhost="inc-mx2"
    31. returnaddress="zhangjf1@gmail.com"
    32. skipusers="true"
    33. subjectprefix="[admin.Build.Server]"
    34. buildresultsurl="http://asd1-server:6636/dashboard"
    35. username="admin"
    36. password="admin"
    37. charset="UTF-8">
    38.<!--编译成功和失败发送的邮件地址-->
    39. <failure address="zhangjf1@gmail.com" />
    40. <success address="zhangjf1@gmail.com" />
    41. </htmlemail>
    42. </publishers>
    43.
    44. </project>
    45.</cruisecontrol>

    把你的工程从svn上取下来放到你的projects目录下,启动的CruiseControl服务,在地址浏览器中输入http://127.0.0.1:8080/dashboard就可以看到你的项目的管理界面,你可以设置什么时候进行编译,也可以进行强制编译。

    赠人玫瑰
    手留余香

    我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

  • 相关阅读:
    docker 打包镜像并传输
    bytes函数——字节
    python——多线程
    Golang基础——随机数rand.Seed
    Golang基础——数据类型:数组
    property 和 setter 装饰器
    qrc文件使用
    SQL优化——索引
    mysql结构及存储引擎
    css样式重置以及定位
  • 原文地址:https://www.cnblogs.com/haochuang/p/2482391.html
Copyright © 2020-2023  润新知