FuelPHPでPHPUnitを使用するときに'PHPUnit_Framework_TestCase' not found って出た
タイトルの通りですが、下記のエラーがでました。 FuelPHPのバージョンは1.8です。
$ php oil test --group=App Tests Running...This may take a few moments. PHP Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /var/www/html/project/fuel/core/classes/testcase.php on line 19 Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /var/www/html/project/fuel/core/classes/testcase.php on line 19 Fatal Error - Class 'PHPUnit_Framework_TestCase' not found in COREPATH/classes/testcase.php on line 19
PHPUnitのバージョンは6です。 なんでかなーと思ってると下記の記事を見つけました。
PHPテストフレームワーク「PHPUnit 6.0」リリース | OSDN Magazine
PHPUnit 6.0では、PHP 5.6がサポート対象外となり、PHPはバージョン7と7.1をサポートする。PHPUnit_Framework_TestCaseがPHPUnit\Framework\TestCaseとなるなど、コードユニットが名前空間化された。
ということなので fuel/core/classes/testcase.php の extends 以降を修正しました。
abstract class TestCase extends \PHPUnit\Framework\TestCase { }
とりあえず、エラーがなくなって PHPUnit が動きました。
修正の方法はもっと別の方法があるような気がするなあ。