やらねばならないのは痛いほどわかっていたが、面倒なのでひたすら先延ばしにしていたユニットテスト。既存のコードに組み込むのはほぼ不可能というのを言い訳にしてきたが、さすがに新しくフレームワークを実装するとなれば書かないわけにはいかないだろう。

そんなわけでPHP用UnitTestの本流、xUnitファミリの一員であるPHPUnitを導入してみる。環境はWindows XP SP3 / xampp 1.6.6a。

●PEARの準備と確認

xampp\phpでpearコマンドが使用可能。Linuxサーバとほぼ同じ使い方ができる。

私の環境ではpear listしたら「なにもないよ」と言われたので以下のようにチャンネル情報をupdateし、PEAR本体のアップデートを行った。

pear channel-update pear.php.net
pear update pear

PHPUnitのRequirementsを確認、「オプションで必要になるよ」と指定された「Image_GraphViz」と「Log」をインストールしておいた。

pear install Image_GraphViz
pear install Log

Requirementsに書かれたExtensionsは、PHP 5.2以降ならおおむねデフォルト有効になっているので、特別な準備はいらないだろう。

●Xdebugの準備

コードカバレッジ(対象コードに対してテストコードの網羅率)を調べたりするにはXdebugが必要なので、使う予定があるならインストールしておく。方法はWindows環境ならこちらの記述がすべてなので参照されたい。

…と思ったら、私の環境のうちのひとつにphp_xdebug.dllが存在しなかった。1.6.6aをzipパッケージでインストール、というのは同じ手順のはずなのだが…。xampp\php\extにphp_xdebug.dllが存在しない場合、本家から「Windows modules : PHP 5.2.1-5.2.6」をダウンロードし、php_xdebug.dllにリネームしてxampp\php\extに保存する。

●PHPUnitのインストール

PEARがちゃんと動くなら、インストールページ(英語だがそれほど困らないだろう)に書いてあることがすべてなのでコマンドを2つ叩くだけ。

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

最低限の動作テスト。

phpunit --version

●UnitTestの作成と実行

ドキュメントどおりArrayTestを書いてみようかと思ったのだが、こちらのサイトに日本語による解説が充実している。同じことをしても芸がないので、別のサンプルを作成してみる。後日エントリ予定。

【リンク集】

PHPUnit
http://www.phpunit.de/

xUnit – Wikipedia
http://ja.wikipedia.org/wiki/XUnit

Xdebug – Debugger and Profiler Tool for PHP
http://xdebug.org/

Lepracaun’s factory – レプラコーン ファクトリー -: XAMPPならXdebugも簡単インストール
http://www.lepracaun.info/blog/2007/11/xamppxdebug.html

PHPUnitの使い方
http://php.nice-777.com/PHPUnit/