fix: switch from xdebug to pcov for code coverage (#101)

* fix: remove xdebug-specific settings from phpunit.xml and composer.json

Remove `<ini name="xdebug.mode" value="coverage"/>` from phpunit.xml and
`XDEBUG_MODE=coverage` prefix from composer scripts. These fail when xdebug
is not installed and are unnecessary when using PCOV for code coverage.

* ci: switch from xdebug to pcov for code coverage

Both test matrix and coverage jobs now use `coverage: pcov`, matching
the existing test-coverage.yaml workflow. PCOV is faster for
coverage-only use and avoids the xdebug dependency conflict.

* build: replace xdebug with pcov in Docker setup

Switch Docker development environment from xdebug to pcov for code
coverage and remove the XDEBUG_MODE environment variable from
docker-compose.yml. Standardizes on pcov across all environments.
This commit is contained in:
2026-03-08 19:16:07 +02:00
committed by GitHub
parent e26312a6ee
commit d1cbf50c5e
5 changed files with 8 additions and 15 deletions

View File

@@ -33,7 +33,7 @@ jobs:
php-version: ${{ matrix.php-version }}
extensions: mbstring, xml, ctype, iconv, intl, json
tools: composer:v2
coverage: xdebug
coverage: pcov
- name: Get composer cache directory
id: composer-cache
@@ -80,7 +80,7 @@ jobs:
php-version-file: '.php-version'
extensions: mbstring, xml, ctype, iconv, intl, json
tools: composer:v2
coverage: xdebug
coverage: pcov
- name: Install dependencies
run: composer install --prefer-dist --no-progress

View File

@@ -20,9 +20,9 @@
"@lint:tool:md:fix",
"@lint:tool:ec:fix"
],
"test": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text",
"test:coverage": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text --coverage-html=coverage",
"test:ci": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --teamcity --coverage-clover=coverage.xml",
"test": "./vendor/bin/phpunit --coverage-text",
"test:coverage": "./vendor/bin/phpunit --coverage-text --coverage-html=coverage",
"test:ci": "./vendor/bin/phpunit --teamcity --coverage-clover=coverage.xml",
"lint:tool:ec": "./vendor/bin/ec *.md *.json *.yml *.yaml *.xml *.php",
"lint:tool:ec:fix": "./vendor/bin/ec *.md *.json *.yml *.yaml *.xml *.php --fix",
"lint:tool:phpcs": "./vendor/bin/phpcs src/ tests/ examples/ config/ rector.php --warning-severity=0",

View File

@@ -15,12 +15,10 @@ RUN apk add --no-cache \
# Install Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Install and configure Xdebug for code coverage
# Install PCOV for code coverage
RUN apk add --no-cache $PHPIZE_DEPS \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& echo "xdebug.mode=coverage,debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
&& pecl install pcov \
&& docker-php-ext-enable pcov
# Set working directory
WORKDIR /app

View File

@@ -11,7 +11,6 @@ services:
working_dir: /app
environment:
- COMPOSER_HOME=/home/developer/.composer
- XDEBUG_MODE=coverage
stdin_open: true
tty: true
command: tail -f /dev/null

View File

@@ -21,8 +21,4 @@
</source>
<coverage/>
<php>
<ini name="xdebug.mode" value="coverage"/>
</php>
</phpunit>