root権限なしでCakePHP2 + PHPUnitを最速でインストールする方法

CakePHPはバージョン2系からテストスイートがSimpleTestからPHPUnitに変更になった。

PHPUnitは通常PEARコマンドを利用してインストールするので、root権限がないと若干面倒だったりする。

ただ、テストスイートはプロジェクトの最初のほうで設定しておきたいところ。
あと個人的には、CakePHP「そのディレクトリだけでプロジェクトオールインワンパッケージ」的なメリットははずせない。

というわけでbakeの前にプロジェクトディレクトリ内にPHPUnitをインストールしてみる。

PHPUnitCakePHPプロジェクト内にローカルインストールする4つのステップ

1.CakePHP2の設置

いつものように任意のディレクトリにCakePHPのディレクトリを設置。バージョン2になってプロジェクトルートにcake/がなくて、lib/があったりして若干戸惑うけどそのまま設置。

2.PEAR Local install pluginの設置

bakeどころかdatabase.phpの設定やapp/tmp/のパーミッションもせずにPEAR Local install pluginを設置。"2.0"ブランチのものをapp/Plugin/にPearLocal/として展開するだけ。

3.app/Config/bootstrap.phpの編集

下記をbootstrap.phpに追記。

<?php
    CakePlugin::load('PearLocal');
4.pear_localコマンドの実行

自分の場合(Ubuntu10.04)は、PEARコマンド自体が古かったので以下のような感じで実行。

$ php lib/Cake/Console/cake.php PearLocal.pear_local install PEAR
$ php lib/Cake/Console/cake.php PearLocal.pear_local config-set auto_discover 1
$ php lib/Cake/Console/cake.php PearLocal.pear_local install pear.phpunit.de/PHPUnit

で、あとはhttp://localhost/myapp/test.phpにアクセスするだけ。

いろいろな問題

CentOSのようにPCREの問題があったり、必要なPHPのExtensionが入っていないとroot権限が必要かも。

ところで、なんでこんな話をしているのか

PHPMatsuri2011テストワークショップがあるんだって!

去年の突発TDDワークショップは濃かったらしいけど、今年はさらに体制が万全という噂だよ!

CakePHP bakerにはCakePHPで語ったほうがわかりやすいはず!
ってことで自分はCakePHPPHPUnitの予習をしてワークショップに臨もうと思います。


今日のCakePHP2勉強会@東京で言っていたけれども、チケットは残り20くらい?らしい。

チケット購入はこちら。お早めにどうぞ。