| Prev | Next |
この章では、PHPUnit とともに一般的に用いられるビルド自動化ツールについての概要を説明します。
Apache Ant は Java ベースのビルドツールです。理論的には make と同じような種類のツールで、make の古くさい部分を取り除いたものです。Apache Ant のビルドファイルは XML 形式で、さまざまなタスクを定義したターゲットツリーを呼び出します。
例 20.1 は Apache Ant の build.xml ファイルの例です。これは、組み込みの <exec> タスクで PHPUnit を実行します。 テストに失敗した場合は、ビルド処理を中断します (failonerror="true")。
例 20.1: PHPUnit を実行する Apache Ant build.xml ファイル
<project name="Money" default="build">
<target name="clean">
<delete dir="${basedir}/build"/>
</target>
<target name="prepare">
<mkdir dir="${basedir}/build/logs"/>
</target>
<target name="phpunit">
<exec dir="${basedir}" executable="phpunit" failonerror="true">
<arg line="--log-xml ${basedir}/build/logs/phpunit.xml MoneyTest" />
</exec>
</target>
<target name="build" depends="clean,prepare,phpunit"/>
</project>
ant
Buildfile: build.xml
clean:
prepare:
[mkdir] Created dir: /home/sb/Money/build/logs
phpunit:
[exec] PHPUnit 3.4.14 by Sebastian Bergmann.
[exec]
[exec] ......................
[exec]
[exec] Time: 0 seconds
[exec]
[exec] OK (22 tests, 34 assertions)
build:
BUILD SUCCESSFUL
Total time: 0 seconds
PHPUnit が作成する XML 形式のテスト結果ログファイル (「テスト結果 (XML)」 を参照ください) は、Apache Ant の <junit> タスクが使用しているものにもとづいています。
Apache Maven は、ソフトウェアプロジェクトの管理や理解のためのツールです。 プロジェクト指向モデル (POM) にもとづいた Apache Maven は、 プロジェクトのビルドやレポート、ドキュメントの作成を共通の情報から行います。 Maven for PHP は、Maven の威力を用いて PHP プロジェクトのビルドやテスト、ドキュメント作成を行います。
Phing (PHing Is Not GNU make) は、Apache Ant をベースとしたプロジェクトビルドシステムです。 GNU make のような伝統的なビルドシステムができることなら何でもこなせます。 また、シンプルな XML 形式のビルドファイルおよび拡張可能な PHP の "タスク" クラスを採用しており、 使いやすく柔軟なビルドフレームワークとなっています。 機能としては、ファイルの変換 (トークンの置換や XSLT 変換、 Smarty テンプレートによる変換など) やファイルシステム上の操作、 対話的なビルドのサポート、SQL の実行、CVS の操作、 PEAR パッケージの作成用のツールなどがあります。
例 20.2 は Phing の build.xml ファイルの例です。これは、組み込みの <phpunit> タスクで PHPUnit を実行します。 テストに失敗した場合は、ビルド処理を中断します (haltonfailure="true")。
例 20.2: PHPUnit を実行する Phing build.xml ファイル
<project name="Money" default="build">
<target name="clean">
<delete dir="build"/>
</target>
<target name="prepare">
<mkdir dir="build/logs"/>
</target>
<target name="phpunit">
<phpunit printsummary="true" haltonfailure="true">
<formatter todir="build/logs" type="xml"/>
<batchtest>
<fileset dir=".">
<include name="*Test.php"/>
</fileset>
</batchtest>
</phpunit>
</target>
<target name="build" depends="clean,prepare,phpunit"/>
</project>
phing
Buildfile: /home/sb/Money/build.xml
Money > clean:
Money > prepare:
[mkdir] Created dir: /home/sb/Money/build/logs
Money > phpunit:
[phpunit] Test: MoneyTest, Run: 22, Failures: 0, Errors: 0,
Incomplete: 0, Skipped: 0, Time elapsed: 0.06887 s
Money > build:
BUILD FINISHED
Total time: 0.2632 seconds
| Prev | Next |
assertArrayHasKey()
assertClassHasAttribute()
assertClassHasStaticAttribute()
assertContains()
assertContainsOnly()
assertEqualXMLStructure()
assertEquals()
assertFalse()
assertFileEquals()
assertFileExists()
assertGreaterThan()
assertGreaterThanOrEqual()
assertLessThan()
assertLessThanOrEqual()
assertNull()
assertObjectHasAttribute()
assertRegExp()
assertSame()
assertSelectCount()
assertSelectEquals()
assertSelectRegExp()
assertStringEndsWith()
assertStringEqualsFile()
assertStringStartsWith()
assertTag()
assertThat()
assertTrue()
assertType()
assertXmlFileEqualsXmlFile()
assertXmlStringEqualsXmlFile()
assertXmlStringEqualsXmlString()
Copyright © 2005-2011 Sebastian Bergmann.