Help us understand the problem. What is going on with this article?

phpunitで「No whitelist is configured, no code coverage will be generated.」のエラー

More than 1 year has passed since last update.

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を指定してやる必要があるようです。

image.png

設定後、カバレッジ有りのテストを実行すると、カバレッジレポートが表示されました。

image.png

image.png

以上です。
よき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

t-kuni
主にWEBとか
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした