てきとうなさいと べぇたばん

CakePHPでテストケースを書いてたら躓いたのでメモ

CakePHPでテストケースを書いている

Controllerのテストで、testActionメソッドを実行すると、以下のようなエラーに苦しめられた。もう見つからないので一部。

CakeTestSuiteDispatcher::{closure}(): Failed opening required '/usr/share/php/PHPUnit/Framework/MockObject/Generator.php'

修復

どうやら、Generator.phpが見つからなかったようだ。PHPUnit_MockObjectが上手くインストール出来なかったか、バージョンが違ったらしい。

再インストールしたら治ったようだ。

$ sudo pear uninstall phpunit/PHPUnit
$ sudo pear uninstall phpunit/PHPUnit_MockObject
$ sudo pear install phpunit/PHPUnit-3.7.30

推測した原因

おそらく、pear install phpunit/PHPUnitでインストールされるPHPUnitのバージョンが4系であったことが原因ではないかと思う。その時にPHPUnit_MockObjectも入ってしまった上、PHPUnitをアンインストールしても残ってしまったことで整合性が取れなくなったのかなと思う。

CakePHPで使用するPHPUnitについて

PHPUnitの最新バージョンは4系になっているが、CakePHPは対応していない模様(CakePHP2.2.9)。PHPUnitは3.7系をインストールすること。

さんこう