第 20 章 持续集成
时间:2008-04-07 来源:hshq_cn
第 20 章 持续集成
持续集成
是一种软件开发实践,团队成员频繁地合并他们的工作,通常每个人至少每天合并,导致每天多次合并。每次合并由一个自动化的构建系统(包括测试)校验,以尽快发觉合并错误。很多团队发现这种方式显著地减少了合并问题,并且允许团队更快地开发内聚的软件。
--Martin Fowler
本章提供持续集成的概述,总结技术及其在PHPUnit下的应用。
CruiseControl
持续集成要求一个完全自动化和可再生的构建系统,包括测试且每天运行很多次。这允许每个开发者每天合并从而减少合并问题。要达此目的,可通过设置一个
cronjob
每隔一段时间重新校验项目的
源代码仓库
、运行测试并发布结果,仍然可能需要一个更舒适的解决方案。
这就是像
CruiseControl
这样的用于持续构建过程的框架出现的原因。它包括但并不限于用于email通知的插件、
Apache Ant
和多种源代码控制工具。提供了web界面用于察看当前和以前构建(版本)的详细信息。
下面的例子假设CruiseControl已经安装于/usr/local/cruisecontrol。
cd /usr/local/cruisecontrol
持续集成
是一种软件开发实践,团队成员频繁地合并他们的工作,通常每个人至少每天合并,导致每天多次合并。每次合并由一个自动化的构建系统(包括测试)校验,以尽快发觉合并错误。很多团队发现这种方式显著地减少了合并问题,并且允许团队更快地开发内聚的软件。
--Martin Fowler
本章提供持续集成的概述,总结技术及其在PHPUnit下的应用。
CruiseControl
持续集成要求一个完全自动化和可再生的构建系统,包括测试且每天运行很多次。这允许每个开发者每天合并从而减少合并问题。要达此目的,可通过设置一个
cronjob
每隔一段时间重新校验项目的
源代码仓库
、运行测试并发布结果,仍然可能需要一个更舒适的解决方案。
这就是像
CruiseControl
这样的用于持续构建过程的框架出现的原因。它包括但并不限于用于email通知的插件、
Apache Ant
和多种源代码控制工具。提供了web界面用于察看当前和以前构建(版本)的详细信息。
下面的例子假设CruiseControl已经安装于/usr/local/cruisecontrol。
- mkdir -p projects/BankAccount/build/logs
- cd projects/BankAccount
- svn co svn://svn.phpunit.de/phpunit/phpunit/branches/release/3.2/PHPUnit/Samples/BankAccount source
- 编辑文件build.xml。范例 20.1: projects/BankAccount/build.xml
- cd /usr/local/cruisecontrol
- 编辑文件config.xml。范例 20.2: config.xml
- ./cruisecontrol.sh
- 在你的浏览器中打开http://localhost:8080/。Apache Maven
Apache Maven
是一个软件项目管理和综合的工具。基于概念项目对象模型(POM),Apache Maven能够从信息的中枢位置管理项目的构建、报告和文档。
PHPUnit的XML日志设备(见
[url=file:///F:/data2/PHPUnit_Pocket_Guide_-_v32/index_cn.html#logging.xml]“XML格式”一节[/url]
)产生的单一XML日志文件在能被Apache Maven的
surefire插件
处理以前,需要被分割成单独的XML日志文件,分别对应每个测试套件。该插件用于在构建周期的测试阶段执行应用的单元测试。
[url=file:///F:/data2/PHPUnit_Pocket_Guide_-_v32/index_cn.html#continuous-integration.maven.examples.phpunit_to_surefire.xsl]范例 20.4[/url]
显示一个实现分割的XSLT样式表。
[url=file:///F:/data2/PHPUnit_Pocket_Guide_-_v32/index_cn.html#continuous-integration.maven.examples.pom.xml]范例 20.3[/url]
显示一个pom.xml配置文件的例子。
范例 20.3: pom.xml
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
org.apache.maven.plugins
maven-surefire-report-plugin
2.4-SNAPSHOT
report-only
范例 20.4: phpunit_to_surefire.xsl
.
相关阅读 更多 +
排行榜 更多 +