そこにペチパー(PHPer)が100人いたら97人はPHPUnitでテストを書く。
と言われている位(適当です)、PHPでは珍しくデファクトとなっているPHPUnit。
なにそうなのか!?と、いざ導入しようとしてwget https://phar.phpunit.de/phpunit.phar
から入れたらPHPのバージョンが合っていなくて挫けそうになった経験。あると思います。
何故なら、PHPUnitの最新バージョンはPHP5.6PHP 7以上を求めているからです。
※ 上記のwget 〜
では最新のPHPUnitが取得されます
そして恐らく、みんながみんなPHPのバージョンは最新では無いはずです。
(一番マシなのが5.5系でヘタすれば未だに5.3系なんてとこも??5.2系使っていたら頭おかしい)
え、じゃあ僕は5.5系使っているんだけど、どうしたらいいの?私は5.4系よ、どうしたらいいの?という事になりますが結論を先に書くと、
PHP5.6以上の人 => PHPUnitは 最新 のものでOK (今のところ)
PHP5.5以下の人 => PHPUnitは 4.8系 を使う (pharファイルはphpunit-4.8.35.phar)
PHP7.0以上の人 => PHPUnitは 最新 のものでOK (今のところ)
PHP5.6の人 => PHPUnitは 5.7系 のものでOK (pharファイルはphpunit-5.7.21.phar)
PHP5.5以下の人 => PHPUnitは 4.8系 を使う (pharファイルはphpunit-4.8.36.phar)
という事になります。
※ 最新の PHPUnit (6.0.0) から PHP5.6 のサポートを止めたようです
Release Announcement for PHPUnit 6.0.0 · sebastianbergmann/phpunit Wiki · GitHub
つまり、それぞれこんな感じでインストールすればOKです。
- PHP5.5以下 ( >= ) の人はこんな感じでバージョン指定する
$ wget https://phar.phpunit.de/phpunit-4.8.27.phar $ chmod +x phpunit-4.8.27.phar $ sudo mv phpunit-4.8.27.phar /usr/local/bin/phpunit
- Chefだとこんな感じ(上のバージョン指定)
execute "wget phpunit" do command <<-EOH curl https://phar.phpunit.de/phpunit-4.8.27.phar > phpunit-4.8.27.phar chmod +x phpunit-4.8.27.phar mv phpunit-4.8.27.phar /usr/local/bin/phpunit EOH not_if "test -e /usr/local/bin/phpunit" end
- 通常(最新版)はこんな感じでインストール
$ wget https://phar.phpunit.de/phpunit.phar $ chmod +x phpunit.phar $ sudo mv phpunit.phar /usr/local/bin/phpunit
PHPUnitとPHPのバージョン対応表
上記を調べる過程で、PHPUnitとPHPのバージョン対応表を書きました。
※ pharファイルのリンクをクリックするとダウンロードします
※ pharファイルはビルドバージョンが一番最新のものを選択しています
※ pharファイルは https://phar.phpunit.de/ 参照
それぞれのバージョンの違いは、上記表の各docへのリンクから確認するか、各pharファイルをダウンロード/インストールして確認してみてください。
いやぁ、それにしても4系から5系への移行、敷居高いっすなぁ。
2017-06-02 追記
- https://phpunit.de/manual/6.0/ja/installation.html
- https://phpunit.de/manual/6.1/ja/installation.html
上記PHPUnitのマニュアル(ja)には
PHPUnit 6.0 は PHP 5.6 以降のバージョンで動作しますが、
PHPUnit 6.1 は PHP 5.6 以降のバージョンで動作しますが、
と記載されておりますが、実際に試す(PHP5.6.30で)と
$ phpunit PHPUnit 6.1.4 by Sebastian Bergmann and contributors. This version of PHPUnit is supported on PHP 7.0 and PHP 7.1. You are using PHP 5.6.30 (/usr/bin/php).
こんな感じで怒られるので注意が必要です。
p.s 英語のマニュアルはOKでした
- https://phpunit.de/manual/6.0/en/installation.html
- https://phpunit.de/manual/6.1/en/installation.html
PHPUnit 6.0 requires PHP 7; using the latest version of PHP is highly recommended.
PHPUnit 6.1 requires PHP 7; using the latest version of PHP is highly recommended.
対応表が素晴らしいです。大変助かりました。ありがとうございます。
コメントありがとうございます!
お役に立ててうれしいです!