phpunitでカバレッジレポートを出力しようとしたが、以下の様なエラーが発生した。
No whitelist is configured, no code coverage will be generated.
phpunit.xmlにホワイトリストの設定が書かれていないとカバレッジが出力できないらしい。
解決方法
以下の設定をphpunit.xmlに追加すればカバレッジが出力できた。
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src</directory>
</whitelist>
</filter>
設定の意味は?
src
ディレクトリの*.php
ファイルのみをカバレッジ算出の対象として指定している。
processUncoveredFilesFromWhitelist
属性がtrue
の場合、実行されたコードの有無にかかわらず全てのファイルをレポートの対象に含める。
false
の場合、1度も実行されないファイルはレポートの対象外となる。
更なる詳細は、末尾のドキュメントを参照されたし。
余談・PhpStormでカバレッジレポートを表示させたい場合
phpstormからカバレッジレポートを出力させる場合、デフォルトの設定のままだとphpunit.xmlを読み込んでくれなくて、エラーになりました。
設定画面のTest Frameworks
で明示的にphpunit.xmlを指定してやる必要があるようです。
設定後、カバレッジ有りのテストを実行すると、カバレッジレポートが表示されました。
以上です。
よきPHPライフを!😀
参考ページ
本家ドキュメントのカバレッジに関するページ
https://phpunit.readthedocs.io/en/8.2/code-coverage-analysis.html#whitelisting-files
本家ドキュメントのフィルタに関するページ
https://phpunit.readthedocs.io/en/8.2/configuration.html#the-filter-element