Composerを使ってPHPUnitをインストール

PHPUnitpearなどで入れることも出来ますが、ほかのPearライブラリと同一フォルダにインストールされてしまうため管理しにくいし、チームの各自でPearインストールをしてもらうとバージョンも異なる可能性もあるので避けたい。
必要なファイルだけをGitで管理してチーム全体で共有するために、Composerを使ってインストールしてみました。


まずはインストールしたいディレクトリに移動

cd app/Vendor


そこに、composer.jsonというファイル名で下記の内容を記述

{
        "name": "phpunit",
                "description": "PHPUnit",
                "require": {
                        "phpunit/phpunit": "3.7.*"
                },
                "config": {
                        "vendor-dir": "PHPUnit"
                }
}

composerをダウンロード

wget http://getcomposer.org/composer.phar


そのディレクトリで、下記を実行するとインストール完了です

php composer.phar install

これで、app/Vendor/PHPUnitの中に必要なファイルがインストールされました。
それをgitで管理すれば良いだけ。


あとは、phpファイルの中で下記を読み込めば、phpunitが実行できるようになります(定数APPはCake独自のもの)

require_once APP . DS . 'Vendor' . DS . 'PHPUnit' . DS . 'autoload.php';

次回は、CakePHP2でこれを利用する方法を書きます。

App::import('Model', 'モデル名')をCakePHP2用にApp::uses()使うように置換

テストケースなどでモデルの読み込みをApp::importでやっている箇所が大量にあったので、一括置換する方法

App::importの箇所を、自分のモデル名の文字列を切り出して、App::usesに置換します。

find ./ -name "*.php" | xargs sed -i "s/App::import('Model', \(.*\))/App::uses(\1, 'Model')/g"