任意のPHPのバージョンと、任意のPHPUnitのバージョンを組み合わせて実行する。

3ヶ月前にgistに書いてtwitterでつぶやいたきりでしたが、こっちにも記載。
いくつか方法はありますが、たぶん最低限の方法で、
任意のPHPのバージョンと任意のPHPUnitのバージョンを動かす方法です。
Ubuntuの場合を中心に書きますが、Windowsとかでもフルパス指定でやれると思います。

  • 任意のPHPをmakeまでします。(方法割愛)
  • 任意のPHPUnitをpyrusで任意のフォルダにインストールします。

PHPUnit 3.5の場合

3.4と3.5だとezComponentへの依存がありましたが、3.6からはなくなってようです。

  • bin/phpunitのインクルードバスを設定しなおします。

PHPUnit 3.5の場合

set_include_path(dirname(__DIR__).'/php' . PATH_SEPARATOR . get_include_path());

require_once 'PHP/CodeCoverage/Filter.php';
PHP_CodeCoverage_Filter::getInstance()->addFileToBlacklist(__FILE__, 'PHPUNIT');

/**
if (strpos('/usr/bin/php', '@php_bin') === 0) {
set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path());
}*/

  • 実行します

trunkのPHPに、phpunit3.6で実行する場合

$ ~/php-src-trunk/sapi/cli/php ~/tmp/phpunit36/bin/phpunit -c tests/phpunit.xml tests/Zend/Acl

たぶん、phpunit3.7だとpharバージョンが提供されそうなので苦しまなくてもいいかも。

関連リンク

頻度が多い場合はちゃんとphp-buildとphpenv使ったほうがいいと思います。はい。