globalとlocalのphpunitバージョンが違う時に出たエラー

phpunit の実行で以下のようなエラーメッセージが出た場合、


PHPUnit 4.5.1 by Sebastian Bergmann and contributors.

PHP Fatal error: Call to undefined method PHPUnit_Framework_TestResult::warningCount() in ~akky\AppData\Roaming\Composer\vendor\phpunit\phpunit\src\TextUI\ResultPrinter.php on line 185

Fatal error: Call to undefined method PHPUnit_Framework_TestResult::warningCount() in ~\akky\AppData\Roaming\Composer\vendor\phpunit\phpunit\src\TextUI\ResultPrinter.php on line 185

これは、composerで定義されたlocalにあるphpunit(./vendor/bin/phpunit)を呼ぶつもりで、globalにインストールされたphpunit(version 5.1.6)を呼んでいるために発生しているエラーのようです。

phpunitのバージョン表記が、なぜかlocal側の4.5.1で出てくるのでちょっと気づかなかったのですが、


$ ./vendor/bin/phpunit

とlocalのphpunitを呼ぶと、エラーは起こらなくなりました。

Laravelプロジェクトでも同様のエラーが報告されていました。globalのphpunitをuninstallすると解消した、というコメントもありますがつまりはそういうことでしょう。

composer.json で新しいphpunitが指定されていればこのトラブルは起こらないのでしょうけど、phpunitを更新するとテストが動かなくなる、ということもあるので、他のプロジェクトを持ってきてテストするとこういうことも起こるでしょう。

コメントを残す

メールアドレスが公開されることはありません。