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章 コードカバレッジ解析

XdebugPHPUnit 本体には組み込まれていません。 テストを実行したときに 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

f:id:yoko_yoji:20180421180036p:plain

余談

邪魔くさいのでwebroot/coverageはgit管理外にしています。

.gitignore

/webroot/coverage
/webroot/coverage/*