PHPUnitをXAMPPにインストール

2011/02/13 22:04:04
この記事は最終更新日から10年以上が経過しています。

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

前提条件

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 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
===================
~

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

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

参考サイト

関連記事

XAMPPで開発する際に、PHPのメール送信関数 mail() もしくは mb_send_mail() を使うと、エラーが出てしまい困ることがあります。ちゃんとメールサーバーの設定をすれば良いじゃないかと思うかもですが、メールサーバーを用意するのは面倒ですし、実際にメールが外部に送信されてしまってもそれはそれで困りものです。mailtodisk とは?mai ...
最近のWebアプリでは、キャッシュやセッションを保存する際に、Redis がよく使われていたりします。しかしながら Redis は XAMPP には含まれていないため、XAMPP から Redis を使うにためには XAMPP の環境に少し手を加える必要があります。そこで、その手順を記載しておきます。いまさら感も多々ありますが、忘れやすい自分への備忘録です。 ...
XAMPP 環境にて作業を行っていたところ、MySQL 接続がやたらと遅く辟易したため、原因を調査してみた。少々ハマってしまったので、ここに書いておきます。誰かの役に立てば幸いだ。ことの発端現象現象としては、PHP から MySQL への接続に1秒以上かかるというもの。ソースコードは下記のたった1行のみ。mysqli_connect('localhost', ...

記事検索

アーカイブ

2021

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

RSSフィード