天将奔烈

日々の記録や学習内容を書いていきます

pcovを使用したコードカバレッジ計測

PHPUnitカバレッジ取得する際にXdebugを使用していたけど、あまりにも遅いのでもっと高速にカバレッジを取得できるものはないかと調べていた。 そんな時に見つけたpcovの設定方法を書いてみようと思う。

pcov: https://github.com/krakjoe/pcov

インストール

※Docker環境で使用することを前提としています。 ※動作要件はPHP7.1以上

pecl install pcov && docker-php-ext-enable pcov

PHPUnit7以下の場合

PHPUnit8以上ではpcovのサポートが含まれているが、PHPUnit7以下では含まれていないため Clobberの追加が必要となる。

Clobber: https://github.com/krakjoe/pcov-clobber

composer require pcov/clobber --dev
vendor/bin/pcov clobber

PHPUnitの実行

php -d pcov.enabled=1 ./vendor/bin/phpunit --coverage-html "/dir_path/coverage" tests/

たったこれだけで設定完了。 自分の導入した環境ではざっくり1/7 ~ 1/8くらいの時間短縮になった。

pcovすごい。