どうも。トクハラです。
備忘録代わりにメモ。
phpunitをインストールするためには前提として以下のモジュールが必要。
- php-mcrypt
- php-xml
yumで入れる
yum install php-mcrypt
yum install php-xml
その後、composer.jsonに以下の記述を追加し composer install
“phpunit/phpunit”: “3.7.*”
確認
vendor/bin/phpunit –version
こっから少しハマった
Warning (2): include(PHPUnit/Autoload.php): failed to open stream: No such file or directory [CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php, line 162]
Warning (2): include() [http://php.net/function.include]: Failed opening ‘PHPUnit/Autoload.php’ for inclusion (include_path=’/var/www/XXXXXXXX/lib:.:/php/includes:/var/www/XXXXXXX/vendor/phpunit/phunit’) [CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php, line 162]
みたいな文言が出る。
ん?と思ってよく読むと
Once PHPUnit is installed make sure its located on PHP’s include_path by checking your php.ini
とある。
Autoload.phpを探すと、vendor配下のphpunit/phpunit内に確かにある。
なるほど、php.iniにinclude_pathをaddすればよいのですね。
792行目付近に以下を追加
; UNIX: “/path1:/path2”
792 include_path = “.:/php/includes:APP/vendor/phpunit/phpunit”
※APP部分はcakephpを置いてるところに読み替えてね
無事上記のエラーが消えました。めでたしめでたし。
余談ですが、最近cakephpのことが好きすぎて夜も眠れません。
昔のVB6のようにサクサク作れる(年がバレるね)。
とにかくエラーメッセージが親切だ。
自分がアプリを作るときも、かくありたいですな〜。
最後に宣伝。弊社はcakephpが大好きなエンジニアがおります。cakephpの仕事ください。
2015/06/18追記
cakephp2.xでphpunit動かす場合はphpunit3.7系でないといけない
phpunit4系はNGなので注意
参考までにcomposer.jsonです
{
“name”: “cakePHP”,
“repositories”: [
{
“type”: “pear”,
“url”: “http://pear.cakephp.org”
}
],
“require”: {
“cakephp/cakephp”: “>=2.4.9”,
“cakephp/debug_kit”: “2.2.*@dev”,
“cakedc/migrations”: “dev-develop”,
“cakedc/users”: “dev-develop”,
“cakedc/search”: “dev-develop”,
“cakedc/utils”: “dev-develop”,
“slywalker/boost_cake”: “*”,
“webtechnick/cakephp-database-logger-plugin”: “2.x-dev”,
“phpunit/phpunit”: “3.7.*”,
“dereuromark/cakephp-tools”: “*”
},
“config”: {
“vendor-dir”: “Vendor/”
}
}