EclipsePDT+PHPUnit+XDebug+MakeGoodでphpのTDD
※2010/10/17追記
会社で今所属しているチームではJavaを用いたシステム開発で、JUnitを用いたTDD:テスト駆動開発が導入されています。
TDDを導入することで、その処理で「何をしたいか」がはっきりし、また、デグレを防げるというメリットがあります。
さて、JavaではJUnitを用いたユニットテストが主流(?)のようですが、phpでも同じようなUIでTDDやりたいなぁと思って調べてみたら、MakeGoodという、EclipsePDTにユニットテスト機能を付与するEclipseプラグインがありました。
「これはいい」と思ってさっそく導入しようとしたのですが、躓きまくりで、導入について解説サイトも少なかったので大変でした。
そこでブログに覚書きとして導入方法を書いておきますので、今後導入する方がいた時の参考になればと思います。
(だいぶ知識不足ですので、間違い等ありましたら指摘をお願いいたします)
- 使用環境
- PHPUnit3のインストール
コマンドラインからpearコマンドを使ってインストールします。
ただし、XAMPPのver.1.7.3はpearコマンドが上手く動かずPHPUnit3をインストールできなかったので、今回はXAMPP 1.7.1を使いました。
(最新版のXAMPPでも、pearをアップグレードしてPHPUnit用のチャンネルをきちんと追加するとインストールできます)
PHPUnitやPHPUnit2がインストールされている場合はアンインストールしてからPHPUnit3をインストールしたほうがいいかもしれません。 - XDebugのインストール
XAMPPでphpをいれた場合、あらかじめXDebugは導入されているので、新たにダウンロードしてインストールする必要はありません。
ただし、色々なサイトでも解説されていますが、php.ini中の[Zend]の中を全てコメントアウトし、[XDebug]の中のコメントを外す必要があります。 - EclipsePDTのインストール
ここからダウンロードして下さい。 - MakeGoodのインストール
基本的にはMakeGoodのwikiのユーザーズガイドに沿って行ないます。 - テストケースの作成
PHPUnitでテストしたいクラスのテストケースを作成しますこの時、phpunitの設定ファイル内のphpへのパスがおかしいため、phpディレクトリ内以外では動作してくれませんので、設定ファイルを書き換えてください。
- inculde_pathの設定
PHP実行ファイルの構成でiniファイルを指定するのですが、なぜかこのphp.iniのinclude_pathはきちんと認識しない*1ので、わざわざ指定してやる必要があります。
ここまできたら、あとはもうテストを書いて実行するだけです。
-
- 前の手順で作成したテストケースをEclipsePDTに読み込ませる(Eclipseで編集していたファイルのテストケースを作った場合は、同じ場所にテストケースのファイルが作られるはずなのでリフレッシュするだけ)
- 実施したいテストの処理を書く
- Navigatorからテストケースファイルを右クリックして「テストの実行」をクリックするなどしてテストを実行
全てのテストが通ればバーはグリーンに、テストが失敗すればバーはレッドになります。
詳細なテストケースの作り方などは、「PHPUnitによるテストの自動化」の連載*2を読むのがいいかと思います。
ちなみに、MakeGood wikiにはデバッガは「Zend Debugger」でもよいとあったのですが、なぜか僕の環境では動いてくれませんでした…
だいぶ駆け足で説明してきましたが、説明不足の部分もあるかと思いますので、疑問点や指摘点等があればコメントお願いいたしますm(_ _)m