gosuperscript/phpunit-coverage

PHPUnit extension that fails the test run when total code coverage drops below a configurable minimum.

Maintainers

Package info

github.com/gosuperscript/phpunit-coverage

pkg:composer/gosuperscript/phpunit-coverage

Statistics

Installs: 194

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-05-27 12:35 UTC

This package is auto-updated.

Last update: 2026-05-27 12:37:50 UTC


README

A PHPUnit extension that fails the test run when total line coverage drops below a configured minimum. Compatible with PHPUnit 11, 12 and 13.

Install

composer require --dev gosuperscript/phpunit-coverage

Configure

Add the extension to your phpunit.xml (or phpunit.xml.dist):

<phpunit>
    <extensions>
        <bootstrap class="Superscript\PhpunitCoverage\Extension">
            <parameter name="minimum" value="100"/>
        </bootstrap>
    </extensions>

    <source>
        <include>
            <directory>src</directory>
        </include>
    </source>
</phpunit>
Parameter Default Description
minimum 100 Minimum total line coverage percentage required to pass.

Behaviour

The extension only checks coverage when PHPUnit has actually collected it — that is, when you run PHPUnit with a coverage report flag (e.g. --coverage-text, --coverage-clover, --coverage-html) and a coverage driver (Xdebug or PCOV) is installed.

  • Coverage enabled, below minimum: the run fails with exit code 1 and a message printed to STDERR.
  • Coverage enabled, at or above minimum: the run continues normally.
  • Coverage disabled, running locally: a PHPUnit warning is emitted, the run continues. Lets you run vendor/bin/phpunit without coverage during development.
  • Coverage disabled, running on CI: the run fails with exit code 1. CI is detected via the CI environment variable (set by GitHub Actions, GitLab CI, CircleCI, Travis, Buildkite, and others).

Run

vendor/bin/phpunit --coverage-text

License

MIT