レイズソフトウェア

PHPUnitをXAMPPにインストール

はてなブックマーク
2011/02/13 22:04:04

これが何度目かは分からないけれど、いままで何度も何度もハマっているので、きっとまたハマると思う。 なのでここに書いておく。誰かの何かの役に立てば幸いだ。

前提条件

XAMPP1.7.3環境にPHPUnit3.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が入っているか確認して、入っている場合はアンインストール。 確認するには 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
===================
~

とあれば入っているので、アンインストール。

pear uninstall phpunit
uninstall ok: channel://pear.php.net/PHPUnit-1.3.2

2011/04/25 追記:
念のためPEARのディレクトリの中を覗いてみて、
フォルダ or ファイルが残ってないか確認して、残ってたら消した方が良いかも。
XAMPP 1.7.4 には PHPUnit2 も入ってるみたいなので、それも邪魔なら消す。

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を入れないといけない。

参考サイト