tomomik’s blog

とりあえずのメモ 違ってたらゴメンなさい

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 が動きました。

修正の方法はもっと別の方法があるような気がするなあ。