Chinaunix首页 | 论坛 | 博客
  • 博客访问: 510713
  • 博文数量: 130
  • 博客积分: 10060
  • 博客等级: 上将
  • 技术积分: 1720
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-21 12:35
文章分类

全部博文(130)

文章存档

2011年(2)

2010年(9)

2009年(41)

2008年(78)

我的朋友

分类:

2008-04-07 15:42:20

第 20 章 持续集成

 

是一种软件开发实践,团队成员频繁地合并他们的工作,通常每个人至少每天合并,导致每天多次合并。每次合并由一个自动化的构建系统(包括测试)校验,以尽快发觉合并错误。很多团队发现这种方式显著地减少了合并问题,并且允许团队更快地开发内聚的软件。

 
 --Martin Fowler

本章提供持续集成的概述,总结技术及其在PHPUnit下的应用。

CruiseControl

持续集成要求一个完全自动化和可再生的构建系统,包括测试且每天运行很多次。这允许每个开发者每天合并从而减少合并问题。要达此目的,可通过设置一个每隔一段时间重新校验项目的、运行测试并发布结果,仍然可能需要一个更舒适的解决方案。

这就是像这样的用于持续构建过程的框架出现的原因。它包括但并不限于用于email通知的插件、和多种源代码控制工具。提供了web界面用于察看当前和以前构建(版本)的详细信息。

下面的例子假设CruiseControl已经安装于/usr/local/cruisecontrol

  1. cd /usr/local/cruisecontrol
  2. mkdir -p projects/BankAccount/build/logs
  3. cd projects/BankAccount
  4. svn co svn://svn.phpunit.de/phpunit/phpunit/branches/release/3.2/PHPUnit/Samples/BankAccount source
  5. 编辑文件build.xml

范例 20.1: projects/BankAccount/build.xml
















  1. cd /usr/local/cruisecontrol
  2. 编辑文件config.xml

范例 20.2: config.xml



name="svnbootstrapper"
classname="net.sourceforge.cruisecontrol.bootstrappers.SVNBootstrapper"/>
name="svn"
classname="net.sourceforge.cruisecontrol.sourcecontrols.SVN"/>














anthome="apache-ant-1.7.0"
buildfile="projects/${project.name}/build.xml"/>







file="logs/${project.name}/buildstatus.txt"/>

mailhost="localhost"
buildresultsurl="{project.name}"
skipusers="true"
spamwhilebroken="true"
returnaddress="project@example.com">





  1. ./cruisecontrol.sh
  2. 在你的浏览器中打开

Apache Maven

是一个软件项目管理和综合的工具。基于概念项目对象模型(POM),Apache Maven能够从信息的中枢位置管理项目的构建、报告和文档。

PHPUnit的XML日志设备(见)产生的单一XML日志文件在能被Apache Maven的处理以前,需要被分割成单独的XML日志文件,分别对应每个测试套件。该插件用于在构建周期的测试阶段执行应用的单元测试。显示一个实现分割的XSLT样式表。显示一个pom.xml配置文件的例子。

范例 20.3: pom.xml



xmlns:xsi=""
xsi:schemaLocation="
">
4.0.0


2.0.7








org.apache.ant
ant-trax
1.7.0


net.sf.saxon
saxon
8.7


org.apache.maven.plugins
maven-antrun-plugin
1.2-SNAPSHOT


codecoverage
pre-site

run



location="${project.reporting.outputDirectory}/phpunit/codecoverage" />
location="${project.build.directory}/surefire-reports" />











out="${surefire.reports}/xslt.info"
style="src/test/config/phpunit_to_surefire.xslt"
processor="trax">













org.apache.maven.plugins
maven-surefire-report-plugin
2.4-SNAPSHOT



report-only







范例 20.4: phpunit_to_surefire.xsl



xmlns:xsl=""
xmlns:xs=""
xmlns:fn="">

.
















阅读(2392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~