CakePHP3でPHPUnitをインストールして使おうと思ったらエラーが発生した。

事象

PHPUnitインストール

1
composer require --dev "phpunit/phpunit"

実行するとエラー

1
2
vendor/bin/phpunit
PHP Fatal error:  Class 'PHPUnit\Framework\BaseTestListener' not found in /home/vagrant/my_app_name/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php on line 28

原因

composer require --dev "phpunit/phpunit" を実行するとPHPUnit7.xがインストールされるがCakePHP3ではPHPUnit7.xがサポートされていないため。

解決方法

PHPUnitのバージョンを指定する

1
composer require --dev phpunit/phpunit:"^5.7|^6.0"