CakePHP 2.2.2 本体のユニットテストを実行してみると結構失敗します
CakePHP のインストール
http://cakephp.jp/ から cakephp-cakephp-2.2.2-0-gf155687.zip をダウンロードしました。
http://localhost/cakephp-2.2.2/ で CakePHP にアクセスできるようにインストールします。
$ chmod -R o+w app/tmp/
app/Config/core.php の Security.salt と Security.cipherSeed を変更します。
/** * A random string used in security hashing methods. */ Configure::write('Security.salt', 'Tfk9wjdmSDdije9wuwns726wjsbsdksis'); /** * A random numeric string (digits only) used to encrypt/decrypt strings. */ Configure::write('Security.cipherSeed', '3928042948327218339429283922');
app/Config/database.php でデータベースの設定をします。
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'cakephp222_devel', 'prefix' => '', 'encoding' => 'utf8', );
デバッグレベルを確認する
app/Config/core.php の CakePHP Debug Level が 2 になっていることを確認します。
Configure::write('debug', 2);
テスト用データベースを設定する
app/Config/database.php でテスト用のデータベースの設定をします。
public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'cakephp222_test', 'prefix' => '', 'encoding' => 'utf8', );
テストを実行する
http://localhost/cakephp-2.2.2/test.php にアクセスするとブラウザからテストを実行できます。ただし、AllTests を選択したら、真っ白なページしか表示されませんでした。
ということで、コンソールから実行します。
$ cd app $ rm -f tmp/cache/persistent/myapp_cake_core_* $ rm -f tmp/cache/models/myapp_cake_model_*
すべてのテストの実行します。
$ Console/cake test core AllTests
すべてのテストを実行し、カバレッジレポートを作成します。メモリが 512MB では足りませんでしたので、増やしました。
$ Console/cake test core AllTests --coverage-html webroot/coverage
テスト結果
よくわかりませんが、かなり失敗します...
Tests: 3092, Assertions: 17638, Failures: 39, Errors: 11, Skipped: 131.
詳細は以下に記録しておきます。