PHPUnit を XAMPP にインストール

この記事は最終更新日から 13年以上 が経過しています。

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

前提条件

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 listpear 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 の下記のコメントを外す。

php.ini 変更前
;extension=php_curl.dll
php.ini 変更後
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 を入れないといけない。

参考サイト

関連記事

PHP_CodeSniffer や PHPStan などで、コードの文法的な正しさは確認できますが、そのコードが本当に正しい動作を行っているかどうかを確認するためには、やはり最終的には動作させてみるしかありません。PHPUnit とは?PHPUnit は、PHP のテストフレームワークです。その名前からわかる通り、基本 ...
PHP での開発効率を向上させるために、PHP 自体に機能を追加するという方法があります。Xdebug とは?Xdebug は、PHP での開発効率を向上させるためのさまざまな機能を提供してくれる PHP の拡張機能(エクステンション)です。Xdebug でできることは下記の6つです。ステップ実行:スクリプトの実行中に ...
XAMPP 環境にて作業を行っていたところ、MySQL 接続がやたらと遅く辟易したため、原因を調査してみた。少々ハマってしまったので、ここに書いておきます。誰かの役に立てば幸いだ。ことの発端現象現象としては、PHP から MySQL への接続に1秒以上かかるというもの。ソースコードは下記のたった1行のみ。PHPmysq ...
XAMPP で開発する際に、PHP のメール送信関数 mail() もしくは mb_send_mail() を使うと、エラーが出てしまい困ることがあります。ちゃんとメールサーバーの設定をすれば良いじゃないかと思うかもですが、メールサーバーを用意するのは面倒ですし、実際にメールが外部に送信されてしまってもそれはそれで困り ...

お知らせ

  • 2024/12/21 NEW
    ツール「JSON 整形ツール」に「JSON5」を追加しました。
    JSON5形式に整形することができます。

記事検索

最新記事

人気記事

RSSフィード

フィードバック

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

匿名でフィードバックする
匿名でフィードバックする

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

なお、このフォームから入力された内容について、管理者から返信はできませんので注意してください。 もし、管理者からの返信が必要であれば、X(旧 Twitter) もしくは、お問い合わせより、お願いします。