• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

自动进行团队构建和单元测试过程

发布: 2009-4-01 10:11 | 作者: 不详 | 来源: 测试时代采编 | 查看: 112次 | 进入软件测试论坛讨论

领测软件测试网

home:构建进程的主目录。如果采用的是这篇文章中描述的目录布局,那么默认设置就可以了。 cruisecontrol-home:CruiseControl 发行包解压后所在的目录。同样,默认设置应当就可以了。 ant-home:Ant 的安装目录。要使用 Fedora Core 4 自带的 Ant,应当把这个值设为 /usr。 maven-home:Maven 的安装目录(如果需要用它的话)。默认值假设把 Maven 解压缩到 /home/cruise/pkg 目录。 return-address:CruiseControl 构建电子邮件的返回电子邮件地址。 return-name:构建电子邮件返回地址的名称。 developers-address:除了上次成功构建之后进行过提交的开发人员之外,应当总是得到构建电子邮件拷贝的一个电子邮件地址。

对于构建成功或失败时应当给谁发送电子邮件,CruiseControl 在这方面相当灵活。在这里使用的配置将向最后一次构建之后向版本控制系统中提交变更的每个开发人员发送电子邮件。持续集成构建可能还包含在其他地方开发的开放源码项目(我将把它们称作远程项目),这时,当远程项目的开发人员弄糟了什么事的时候,可能并不想让构建系统向他们发送电子邮件。在这种情况下,可以向一个地址发送邮件,这个地址通常是一个邮件列表,如果团队成员经常想知道构建的状态,可以订阅这个邮件列表。这可以让团队负责人尽早发现构建发生了损坏。

清单 4 显示了 meta-config.xml 文件的语法:


清单 4. meta-config.xml 的语法
<projects> <project name="project-name" [interval="seconds"]> <svn/>|<cvs/> <ant/>|<maven/> <clean>goals or targets to clean source tree</clean> <build>goals or targets to build</build> [<srcdir>source directory</srcdir>] [<remote-project/>] [<repo-dependency>groupId</repo-dependency>*] [<srcdir-dependency>project-name</srcdir-dependency>*] [<modificationset>CruiseControl elements</modificationset>] </project>* </projects>

配置文件基本上是个<project>元素列表。每个项目都有一个name属性。可选的interval属性覆盖了 CruiseControl 默认的 5 分钟的构建间隔时间。可以提高远程项目的构建间隔,以减轻它们的版本控制仓库的负担。

利用<svn/>或<cvs/>空元素,每个项目必须指定自己用来更新源树的版本控制工具。项目还必须指定要使用的构建工具,或者是<ant/>或者是<maven/>。项目还必须包含两个元素,说明要使用哪个目标(或哪个 Maven 的目标)清理和构建源树。对于 Maven,典型的值可能是<clean>clean</clean>和<build>jar:install-snapshot</build>。对于 Ant,可能需要检查 build.xml 文件来找到目标的名称。

假设项目的源在 /home/cruise/src 目录下,根据项目命名,那么name属性为my-project的项目的源应当在 /home/cruise/src/my-project 中。有些项目拥有大型源树,拥有可以单独构建的子目录;为了处理这种情况,<project>元素可以包含可选的<srcdir>元素,由它指定 /home/cruise/src 目录的特定子目录。例如:

<project name="my-utils"> <srcdir>big-project/my-utils</srcdir> ...

CruiseControl 默认的行为是向上次构建之后签入变更的每个人发送电子邮件。如果是从远程版本控制仓库中拉出源代码,请添加<remote-project/>元素,这可以使电子邮件发送到 meta-config.xsl 文件中指定的developers-address地址。

项目间的依赖关系

CruiseControl 并不知道项目之间的依赖关系。可能有一个项目生成的 JAR 文件包含的工具类集合是其他许多项目依赖的,但是除非向 CruiseControl 解释这个关系,否则它对这个关系将毫不知情。可以对工具类的项目进行修改,从而造成它被重新构建,但是依赖它的项目不会针对工具类的新版本重新被构建和测试。这可能会降低集成测试的价值,所以出现了对这一问题的一些解决方案

CruiseControl 为这个目的提供的主要工具是<filesystem>元素。可以把这个元素包含在某个项目的<modificationset>小节中,这样只要文件系统的某些区域发生了修改,项目就会被重新构建。清单 1中初始的 config.xml 文件就采用这种方式,在强制构建目录中的文件发生修改时,触发重新构建。所有的项目都会在文件系统的某个位置创建或更新制品。(例如,作为工具类项目的构建结果,会更新自己产生的 JAR 文件。)可以在<filesystem>元素中用这些位置,触发依赖这些制品的项目进行构建。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网