天天看点

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

一: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,好了,成功了。

我使用的是CruiseControl-2.7.1

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

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

CruiseControl安装后的目录结构是:

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

以下是我的一个项目的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" 

32. skipusers="true" 

33. subjectprefix="[admin.Build.Server]" 

35. username="admin" 

36. password="admin" 

37. charset="UTF-8"> 

38.<!--编译成功和失败发送的邮件地址--> 

41. </htmlemail> 

42. </publishers> 

43. 

44. </project> 

45.</cruisecontrol>

本文转自 念槐聚 博客园博客,原文链接:http://www.cnblogs.com/haochuang/archive/2012/05/04/2482391.html,如需转载请自行联系原作者