LaravelでHTML形式のカバレッジを取得する方法です。
Laravelのプロジェクトがあって、phpunitでユニットテストを書いている前提です。
環境
Laravel 9
Xdebug v3.3.2
準備
Xdebugをインストールします。
sudo pecl install xdebug
次にphp.iniを変更します。
# /etc/php.ini
zend_extension=xdebug.so
xdebug.mode=coverage
取得、確認
Laravelプロジェクト直下で以下を実行します。
メモリ使用量はプロジェクトの大きさに応じて変えます。
また、この場合はtests/Unitのユニットテストを対象にしています。
php -d memory_limit=1G vendor/bin/phpunit --coverage-html=coverage tests/Unit
実行すると、coverageディレクトリが現れます。
ダウンロードして index.html を開くと、カバレッジを見られます。
ControllersやModelsをクリックすると、各種ファイル毎の網羅率を見られます。
Laravel9はサポート終わっていて古いですが、10や11も同様に動くと思います。