From d1cbf50c5ef4477591419e9ae8a0419a95b25a9c Mon Sep 17 00:00:00 2001 From: Ismo Vuorinen Date: Sun, 8 Mar 2026 19:16:07 +0200 Subject: [PATCH] fix: switch from xdebug to pcov for code coverage (#101) * fix: remove xdebug-specific settings from phpunit.xml and composer.json Remove `` 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. --- .github/workflows/ci.yml | 4 ++-- composer.json | 6 +++--- docker/Dockerfile | 8 +++----- docker/docker-compose.yml | 1 - phpunit.xml | 4 ---- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b7b200..9d5ae80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/composer.json b/composer.json index 8ceceb5..3e30208 100644 --- a/composer.json +++ b/composer.json @@ -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", diff --git a/docker/Dockerfile b/docker/Dockerfile index f7dbdf7..9c934fc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 4198f8e..017c392 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -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 diff --git a/phpunit.xml b/phpunit.xml index a7b44fc..4d36b3d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -21,8 +21,4 @@ - - - -