amazonのec-2上でcakephpとphpunitを動かす

どうも。トクハラです。
備忘録代わりにメモ。
phpunitをインストールするためには前提として以下のモジュールが必要。

  1. php-mcrypt
  2. 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/”
}
}