PHPUnit を XAMPP にインストール
これが何度目かは分からないけれど、いままで何度も何度もハマっているので、きっとまたハマると思う。 なのでここに書いておく。誰かの何かの役に立てば幸いだ。
前提条件
XAMPP 1.7.3 環境に PHPUnit 3.5 をインストール。
OS | Windows |
---|---|
XAMPP | 1.7.3 |
PHP | 5.3.1 |
PEAR | 1.9.1 |
PHPUnit | 3.5 |
事前準備
PHPUnit をインストールするには PEAR を使うので、まずその環境を整えておく。
2011/04/24 追記:
Vista か 7 の場合は、コマンドプロンプトを「管理者として実行」で起動させて行うこと。
そうしないと権限の問題でフォルダの作成とかで失敗してしまう。
PEAR チャンネルの更新
pear update-channels
念のため PEAR パッケージを最新にしておく
PEAR だけで良い場合は、
pear upgrade pear
全て最新にする場合は、
pear upgrade-all
2011/04/24 追記:
upgrade-all
する場合は1度実行しただけでは最新にならないので、何度か叩いてみた方が良い。
「pear/XML_RPC2 requires PHP extension "curl"」と出たら、下記の「curl のインストール」を先に実行してから行うこと。
古いバージョンの PHPUnit をアンインストール
古いバージョンの PHPUnit が入っているか確認して、入っている場合はアンインストール。
古いバージョンの PHPUnit が入っているか確認
確認するには pear list
か pear info
を使う。
pear list
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE ~ PHPUnit 1.3.2 stable
もしくは
pear info phpunit
ABOUT PHPUNIT-1.3.2 =================== ~
とあれば入っているので、アンインストールする。
古いバージョンの PHPUnit をアンインストール
pear uninstall phpunit
uninstall ok: channel://pear.php.net/PHPUnit-1.3.2
2011/04/25 追記:
念のため PEAR のディレクトリの中を覗いてみて、
フォルダ or ファイルが残ってないか確認して、残ってたら消した方が良いかも。
XAMPP 1.7.4 には PHPUnit 2 も入ってるみたいなので、それも邪魔なら消す。
PHPUnit のインストール
PEAR チャンネルの追加
本家のマニュアルにある通りにチャンネルを追加。
pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.symfony-project.com
PHPUnit のインストール
本家のマニュアルにある通りにインストール。
pear install phpunit/PHPUnit
ここで下記のようなエラー。
phpunit/PHPUnit can optionally use PHP extension "curl" phpunit/PHPUnit can optionally use PHP extension "dbus" pear/XML_RPC2 requires PHP extension "curl" phpunit/PHPUnit requires package "pear/XML_RPC2" No valid packages found install failed
メッセージをそのまま読めば、
- phpunit/PHPUnit は pear/XML_RPC2 が必須。
- その pear/XML_RPC2 は PHP エクステンションの curl が必須。
ということらしいので、先に curl を入れる必要がある。
2011/04/24 追記:
先に下記の「curl のインストール」を行っていた場合は、このエラーは出ない。
curl のインストール
curl は PEAR ではなく PHP エクステンションなので、php.ini を変更しないといけない。
php.ini の下記のコメントを外す。
;extension=php_curl.dll
extension=php_curl.dll
必要ならサーバー再起動。
2011/04/24 追記:
まぁ普通に考えてここで再起動する必要はない。
再度インストール
curl がインストールできたので、再度 PHPUnit のインストールを試みる。
pear install phpunit/PHPUnit
phpunit/PHPUnit can optionally use PHP extension "dbus" downloading PHPUnit-3.5.11.tgz ... Starting to download PHPUnit-3.5.11.tgz (117,869 bytes) ..........................done: 117,869 bytes downloading XML_RPC2-1.0.6.tgz ... Starting to download XML_RPC2-1.0.6.tgz (63,747 bytes) ...done: 63,747 bytes install ok: channel://pear.php.net/XML_RPC2-1.0.6 install ok: channel://pear.phpunit.de/PHPUnit-3.5.11
pear/XML_RPC2 は自動で入るみたい。
インストールの確認
今度は pear list
では出てこないので、pear info
を使う。pear info
も指定の仕方が少し違う。
pear info phpunit/PHPUnit
ABOUT PEAR.PHPUNIT.DE/PHPUNIT-3.5.11 ==================================== ~
もしくは PHPUnit 自体で確認。
phpunit --version
PHPUnit 3.5.11 by Sebastian Bergmann.
と出てくればインストール成功。
まとめ
とりあえずここまで。PHPUnit はとても便利だと思うけれども、動かすまでが壁だと思う。 コードカバレッジ使う場合はさらに Xdebug を入れないといけない。