A PHPUnit extension that fails the test run when total line coverage drops below a configured minimum. Compatible with PHPUnit 11, 12 and 13.
composer require --dev gosuperscript/phpunit-coverageAdd 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. |
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
1and 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/phpunitwithout coverage during development. - Coverage disabled, running on CI: the run fails with exit code
1. CI is detected via theCIenvironment variable (set by GitHub Actions, GitLab CI, CircleCI, Travis, Buildkite, and others).
vendor/bin/phpunit --coverage-textMIT