This php script will read the clover xml report from phpunit and calculates the coverage score. Based on the given threshold the script will exit ok of the coverage is higher then the threshold or exit with code 1 if the coverage is lower then the threshold. This script can be used in your continuous deployment environment or for example added to a pre-commit hook.
The script can be installed using composer. Add this repository as a dependency to the composer.json file.
composer require --dev rregeer/phpunit-coverage-check
The script has requires 2 parameters that are mandatory to return the code coverage.
- The location of the clover xml file, that's generated by phpunit.
- The coverage threshold that is acceptable. Min = 1, Max = 100
Generate the clover.xml
file by using phpunit and run the coverage check script:
Run the script:
vendor/bin/phpunit --coverage-clover clover.xml
vendor/bin/coverage-check clover.xml 80
vendor/bin/coverage-check clover.xml 80 --only-percentage
With the --only-percentage
enabled, the CLI command will only return the resulting coverage percentage.
It's also possible to add the coverage report generation to the phpunit.xml.dist
add to following lines to the xml file inside the <coverage>
tag:
<report>
<clover outputFile="clover.xml" />
</report>
For more information see the phpunit documentation. Information about the configuration file and commandline options.