概要
みなさんこんにちはcandleです。今回はcakephp2.4以降でphpunitとdebugkitをcomposerを使って導入してみたいと思います。
cakephpは標準でphpunitを使ってテストをします。
導入を簡単に素早くやってみましょう。
今まではpearや手動でやっていたのですが、これがcomposerを使う事で簡単に出来る様になりました。
前提
cakephp2.4以降のプロジェクトがある
私は最新のcakephp2.5.6を使用します。
composerがインストールされている
composer.jsonを確認する
cakephpプロジェクトにcomposer.jsonがあるか確認します。
これは自分で作成するのではなく、標準で準備されています。
composer.jsonの中身をエディタで見て、phpunitのバージョンが3.7あたりである事を確認します。
これは他の記事にあったのですが、cakephp2.4~2.5あたりではまだphpunit3.7.*でないと動かないらしく、それ以降のバージョンだとエラーがでるとか。
composer.jsonには既に「3.7.*」と記入されています。
composerのインストール先を変更する
composerのライブラリのデフォルトの保存先はvendorです。
何も設定しないでライブラリをインストールするとvendorフォルダが作成されてそこに保存されます。
しかし、cakephp2.5.6ではあらかじめ「vendors」というフォルダが用意されています
composer.jsonを編集してvendorsに保存する様に設定します。
composer.json開き、最初の { 内ならてどこでも良いので下の記述を加えます。
"config": { "vendor-dir": "vendors" },
私はlisenceの項目の下の記述しています。
次にプラグインの保存先を変更します。composerでプラグインを特に設定しないでインストールすると、Pluginというフォルダが作られて、今回の場合ですとdebugkitがそこに保存されます。
cakephp2.5.6ではすでにpluginsというフォルダが用意されているので、そちらに保存される用に設定します。
下の記述をcomposer.jsonに加えてください。場所はどこでも良いのですが、私は
require_devの当たりに書きます。
"extra": { "installer-paths": { "./plugins/{$name}/": [ "cakephp/debug_kit" ] } },
これでcomposerの設定が終わりました。
phpunit3.7.*とdebugkitをインストールする
それではphpunitとdebugkitをインストールしてみましょう。
composer.jsonがあるフォルダで下のコマンドを実行します。
composer install
するとcomposer.jsonをもとに自動的にライブラリがインストールされます。
注釈として、/var/www/などにcakephpを配置し、フォルダ管理者をapacheにしている場合は権限関係でインストールできません。そこで、一度下のコマンドで管理者をログインユーザーに変更してから上のcomposer installを実行してください(インストールができたらかならず管理者をapacheに戻してください)。
sudo chown -R `whoami` /var/www/cakephp/ composer install sudo chown -R apache /var/www/cakephp/
vendorsフォルダの中にphpunitが保存されます。
インストールが終わると、cakephpプロジェクトにvendorsというフォルダにphpunitが保存されます。
そして、pluginsの中にdebugkitが保存されます。
これでインストールは終わりました。
debugkitの読み込み設定をする
pluginsに保存されたdebugkitを読み込む為にapp/Config/bootstrap.phpを開きます。
どこでもよいので、下の一行を加えましょう。
CakePlugin::load('DebugKit');
テスト画面にアクセスして確認する
確認する為にapacheサーバを起動して、テストページに飛びましょう。
sudo service httpd start
まずはトップページに行きます。
もしも、debugkitの項目が緑色になっていれば正常に呼び出されています。
テストページはだいたい
http://IPアドレスかホスト名/test.php
でアクセスできます。
エラーが出ていなければ成功です。
phpunitが導入できました。
まとめ
composerはやっぱり便利ですね。