自动进行团队构建和单元测试过程
作者:网络转载 发布时间:[ 2013/5/29 10:22:15 ] 推荐标签:
现在需要从 XStream 项目的 Subversion 仓库中签出 XStream 源树。为了保持一致,请把所有源树签出为 /home/cruise/src 的子目录,并把 XStream 源树放在 src/xstream 中,像 config.xml 文件所指定的那样:
[cruise@fcvm pkg]$ cd
[cruise@fcvm ~]$ mkdir src
[cruise@fcvm ~]$ cd src
[cruise@fcvm src]$ svn co https://svn.codehaus.org/
xstream/trunk/xstream
A xstream/LICENSE.txt
A xstream/continuous-integration.xml
[...]
A xstream/build.xml
U xstream
Checked out revision 614.
[cruise@fcvm src]$
然后,设置强制构建子目录:
[cruise@fcvm src]$ cd ..
[cruise@fcvm ~]$ mkdir force-build
[cruise@fcvm ~]$ touch force-build/xstream
[cruise@fcvm ~]$
后这一步是必需的,因为如果 config.xml 文件的 <filesystem> 元素中指定的文件不存在,CruiseControl 会拒绝启动。
现在构建工作可能没有正常工作,也有可能遗漏了一些依赖项。所以这个时候,应当做一些手动检查,确保能够成功构建 XStream 源树:
构建 XStream 有问题?
有可能发现 XStream 构建失败,报告 org.w3c.dom.TypeInfo 的 NoClassDefFoundError 错误。实际上,构建几乎成功了,但是 XStream 的 Ant 构建脚本用 <junitreport> 任务生成 JUnit 测试结果的 HTML 报告。这个工作使用 XSLT 转换,所以触发了前面我在 初始配置 一节中提到过的 xerces-j2 包中的 bug。
[cruise@fcvm ~]$ cd src/xstream
[cruise@fcvm xstream]$ ant library
Buildfile: build.xml
compile:
[mkdir] Created dir: /home/cruise/src/xstream/build/java
[echo] Java version used for compile: 1.4.2_08
[javac] Compiling 150 source files to /home/cruise/src/xstream/bui
ld/java
[...]
library:
BUILD SUCCESSFUL
Total time: 1 minute 44 seconds
[cruise@fcvm xstream]$
而且,在添加新项目时,需要找到用来构建源和清理其中制品的目标的名称。必须把这个信息放在 config.xml 文件中。
现在应当做好准备,可以让 CruiseControl 自动执行这个构建了。只要启动 CruiseControl,然后坐下来等待可以了:
[cruise@fcvm xstream]$ cd
[cruise@fcvm ~]$ java -jar
pkg/cruisecontrol-2.2.1/main/dist/cruisecontrol.jar
[cc]Aug-24 20:09:31 Main - CruiseControl Version 2.2.1
[cc]Aug-24 20:09:32 trolController- projectName = [xstream]
[cc]Aug-24 20:09:32 trolController- No previously serialized project f
ound: /home/cruise/xstream
[cc]Aug-24 20:09:32 Project - Project xstream: reading settings
from config file [/home/cruise/config.xml]
[cc]Aug-24 20:09:32 BuildQueue - BuildQueue started
[cc]Aug-24 20:09:32 Project - Project xstream starting
[cc]Aug-24 20:09:32 Project - Project xstream: idle
[cc]Aug-24 20:09:32 Project - Project xstream started
[cc]Aug-24 20:09:32 Project - Project xstream: next build in 1
hours
[cc]Aug-24 20:09:32 Project - Project xstream: waiting for next
time to build
[cc]Aug-24 21:09:33 Project - Project xstream: in build queue
[cc]Aug-24 21:09:33 BuildQueue - now adding to the thread queue: xs
tream
[cc]Aug-24 21:09:33 Project - Project xstream: reading settings
from config file [/home/cruise/config.xml]
[cc]Aug-24 21:09:33 Project - Project xstream: bootstrapping
[cc]Aug-24 21:09:33 Project - Project xstream: checking for mod
ifications
[cc]Aug-24 21:09:59 Project - Project xstream: No modifications
found, build not necessary.
[cc]Aug-24 21:09:59 Project - Project xstream: Building anyway,
since build was explicitly forced.
[cc]Aug-24 21:09:59 Project - Project xstream: now building
Buildfile: build.xml
[cc]Aug-24 21:11:29 Project - Project xstream: merging accumula
ted log files
[cc]Aug-24 21:11:30 Project - Project xstream: build successful
[cc]Aug-24 21:11:30 Project - Project xstream: publishing build
results
[cc]Aug-24 21:11:30 Project - Project xstream: idle
[cc]Aug-24 21:11:30 Project - Project xstream: next build in 1
hours
[cc]Aug-24 21:11:30 Project - Project xstream: waiting for next
time to build
[stop CruiseControl using Ctrl-C]
[cruise@fcvm ~]$

sales@spasvo.com