Closed5

pcovを導入する

hiro110hiro110

PHPを7から8にアップグレードしたことに伴い、これまでPHP Unitのカバレッジ計測で利用していたphpdbgが使えなくなった。代替としてpcovを導入する

hiro110hiro110

まずはインストール。
開発ではDockerを利用しているので、Dockerfileを修正

Dockerfile
FROM --platform=linux/amd64 ubuntu:22.04
...
RUN apt update && apt install -y --no-install-recommends \
       ...
        php-cli \
        php-dev \
        php-pear \
        build-essential \
        && pecl install pcov \
        && echo "extension=pcov.so" >> /etc/php/8.1/cli/php.ini \
        && echo "pcov.enabled=1" >> /etc/php/8.1/cli/php.ini \
        && echo "pcov.directory=/var/www/manage" >> /etc/php/8.1/cli/php.ini
hiro110hiro110

docker build後、dockerコンテナ内に入り、インストールされていることを確認。

shell
pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
pcov    1.0.11  stable
hiro110hiro110

phpunit.xmlが古い可能性があるので以下もやっておく

php vendor/bin/phpunit --migrate-configuration
hiro110hiro110

実行

php vendor/bin/phpunit --coverage-html <Output Directory> <PHP Unit Test File>

ex)
php vendor/bin/phpunit --coverage-html coverage tests/Unit/HogeUnitTest.php
このスクラップは2023/10/08にクローズされました