第1章 PHPUnit のインストール

注記

PHPUnit 3.8 は PHP 5.4.7 以降のバージョンで動作しますが、PHP 5.5.1 以降を使うことを強く推奨します。

PHPUnit では PHP_CodeCoverage というライブラリを使ってコードカバレッジ情報を処理していますが、 このライブラリを使うには Xdebug 2.2.3 以降が必要です。 しかし、Xdebug 2.3.0 以降を使うことを強く推奨します。

PHP Archive (PHAR)

PHPUnit を入手する一番簡単な方法は、PHP Archive (PHAR) をダウンロードすることです。 必要な依存コンポーネントがすべて (オプションのコンポーネントの一部も含めて) ひとつのファイルにまとめられています。

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

もちろん、ダウンロードした PHAR をそのまますぐに使ってもかまいません。

wget https://phar.phpunit.de/phpunit.phar
php phpunit.phar

Composer

Composer を使ってプロジェクトの依存関係を管理するには、 phpunit/phpunit への依存情報をプロジェクトの composer.json ファイルに追加します。 次に示すのは最小限の composer.json ファイルの例で、 開発時の PHPUnit 3.8 への依存を定義しています。

{
    "require-dev": {
        "phpunit/phpunit": "3.8.*"
    }
}

システム全体で使えるように Composer でインストールするには、次のようにします。

composer global require 'phpunit/phpunit=3.8.*'

~/.composer/vendor/bin/ にパスを通すことを忘れないようにしましょう。

PEAR

次のふたつのコマンドを実行するだけで (root として実行しなければならないかもしれません)、 PEAR インストーラー を使って PHPUnit をインストールできるようになります。

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit

注意

OS のディストリビューションや PHP の環境によっては、 ここで説明する手順を実行する前に まず PEAR をインストールしたり既存の PEAR をアップデートしたりする必要があるかもしれません。

既存の PEAR 環境のアップデートは、通常は sudo pear upgrade PEAR を実行するだけのことです。PEAR の新規インストール方法は PEAR マニュアル に説明があります。

オプションのパッケージ

オプションのパッケージとして、これらが使えます。

DbUnit

DbUnit の PHP/PHPUnit 向けの移植。データベースとのやりとりをテスト可能にする。

このパッケージは、PEAR を使って次のコマンドでインストールします。

pear install phpunit/DbUnit

Composer でインストールするには、 "require-dev" に次の行を追加します。

"phpunit/dbunit": ">=1.2"
PHP_Invoker

callable をタイムアウトつきで実行するユーティリティクラス。 テストのタイムアウトを厳格に指定するために必要なパッケージ。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHP_Invoker

Composer でインストールするには、 "require-dev" に次の行を追加します。

"phpunit/php-invoker": "*"
PHPUnit_Selenium

PHPUnit 用の Selenium RC インテグレーション。

このパッケージは、PEAR を使って次のコマンドでインストールします。

pear install phpunit/PHPUnit_Selenium

Composer でインストールするには、 "require-dev" に次の行を追加します。

"phpunit/phpunit-selenium": ">=1.2"
PHPUnit_Story

PHPUnit で振舞駆動開発をするための、ストーリーベースのテストランナー。

このパッケージは、PEAR を使って次のコマンドでインストールします。

pear install phpunit/PHPUnit_Story

Composer でインストールするには、 "require-dev" に次の行を追加します。

"phpunit/phpunit-story": "*"
PHPUnit_SkeletonGenerator

プロダクションコードのクラスからテストクラスの雛形を生成したり、 その逆の操作をしたりするツール。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_SkeletonGenerator
PHPUnit_TestListener_DBUS

イベントを DBUS に送信するテストリスナー。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_TestListener_DBUS
PHPUnit_TestListener_XHProf

XHProf を使ってテスト対象コードの自動プロファイリングを行うテストリスナー。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_TestListener_XHProf
PHPUnit_TicketListener_Fogbugz

Fogbugz issue API 用のチケットリスナー。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_TicketListener_Fogbugz
PHPUnit_TicketListener_GitHub

GitHub issue API 用のチケットリスナー。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_TicketListener_GitHub
PHPUnit_TicketListener_GoogleCode

Google Code issue API 用のチケットリスナー。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_TicketListener_GoogleCode
PHPUnit_TicketListener_Trac

Trac issue API 用のチケットリスナー。

このパッケージは、次のコマンドでインストールします。

pear install phpunit/PHPUnit_TicketListener_Trac

アップグレード

PHPUnit 3.7 から PHPUnit 3.8 へのアップグレードの際に出くわすことになる、 過去との互換性に関するちょっとした問題をまとめます。

アップグレードそのものは極めて簡単で、特に問題も発生しません。 主要なオープンソースのフレームワークのすべてを対象にテストをして、 まったく問題がありませんでした。 しかし、プロジェクトによって事情は異なるでしょう。 これまでのリリース候補を一度も試さずにアップグレードした人は戸惑うかもしれません。 そんなときは、このドキュメントが助けとなるでしょう。

このページの改善案をGitHubで提案してください!