gosuperscript / phpunit-coverage
PHPUnit extension that fails the test run when total code coverage drops below a configurable minimum.
v1.0.1
2026-05-27 12:35 UTC
Requires
- php: ^8.2
- phpunit/phpunit: ^11.0 || ^12.0 || ^13.0
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
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).
Run
vendor/bin/phpunit --coverage-text
License
MIT