Cake PHP3のphpunitでコードカバレッジ見たいのに見られない
まずやったこと
【CakePHP3】PHPUnitでテストの自動化 – INSIGHT
こちらのサイトを参考にとりあえずcoverage吐かせてみました。
そしたら失敗。
$ vendor/bin/phpunit --coverage-html webroot/coverage tests/TestCase PHPUnit 6.5.8 by Sebastian Bergmann and contributors. Error: No code coverage driver is available ....... 7 / 7 (100%) Time: 170 ms, Memory: 12.00MB OK (7 tests, 37 assertions)
「No code coverage driver is available」だそうです。
Xdebugは別途自分でインストールする必要があるみたいですね。
PHPUnit マニュアル – 第11章 コードカバレッジ解析
Xdebug は PHPUnit 本体には組み込まれていません。 テストを実行したときに Xdebug がロードできないという notice が出る場合は、 Xdebug がインストールされていないかあるいはうまく設定できていないのでしょう。 PHPUnit のコードカバレッジ機能を使う前に、まずは Xdebug のインストールガイド を読んでみましょう。
Xdebugのインストール
www.hardworker.jp こちらのサイト参考にインストールしました。
peclは使える前提です。
再実行
成功しました。
$ vendor/bin/phpunit --coverage-html webroot/coverage tests/TestCase PHPUnit 6.5.8 by Sebastian Bergmann and contributors. ....... 7 / 7 (100%) Time: 1.57 seconds, Memory: 14.00MB OK (7 tests, 37 assertions) Generating code coverage report in HTML format ... done
余談
邪魔くさいのでwebroot/coverageはgit管理外にしています。
.gitignore
/webroot/coverage /webroot/coverage/*