カテゴリー
コンピューター

【CakePHP】PHPUnit is not installed. Do you want to bake unit test files anyway? への対処方法

対処方法

vim Config/bootstrap.php

ファイルの最後に次を追記します。

// composerのautoloadを読み込み
require APP . 'Vendor/autoload.php';

// CakePHPのオートローダーをいったん削除し、composerより先に評価されるように先頭に追加する
// https://github.com/composer/composer/commit/c80cb76b9b5082ecc3e5b53b1050f76bb27b127b を参照
spl_autoload_unregister(array('App', 'load'));
spl_autoload_register(array('App', 'load'), true, true);

参考ページですの♪

どんな状況で発生したか?

  • Composer で CakePHP、PHPUnit をインストール
  • bake でモデルを生成した時に「PHPUnit is not installed. Do you want to bake unit test files anyway?」と表示された。
  • なお、 http://localhost/your_app/test.php へアクセスすることでテストケースを見ることも、実際にテストを動かすこともできた。つまり PHPUnit はインストールされている。

「composerで他のライブラリをインストールしている場合は、 オートローダーを設定してcomposerのオートローダーで起こる問題を回避してください。」と参考ページにはありましたけれども、他のライブラリ = PHPUnit で、composerのオートローダーで起こる問題 = PHPUnit is not installed. Do you want to bake unit test files anyway?、ですのね。

起こる問題はもっとほかにもあるかもしれませんけれど、以上のように当てはめることができますわね♪

おわりに

こちらのページでオートローダーの設定がどのように有意義なのかわからない、bake すると PHPUnit が無いと言われる、、、と課題を上げておりました。

一気に2つとも解決してしまいましたの♪

やったぜ!

以上です。

コメントを残す