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すごい。