Library that provides collection, processing, and rendering functionality for PHP code coverage information.
PHP
8,927
3,877 commits
updated Oct 3, 2026
Provides collection, processing, and rendering functionality for PHP code coverage information.
You can add this library as a local, per-project dependency to your project using Composer:
composer require phpunit/php-code-coverage
If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
composer require --dev phpunit/php-code-coverage
<?php declare(strict_types=1);
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\Driver\Selector as DriverSelector;
use SebastianBergmann\CodeCoverage\Filter;
use SebastianBergmann\CodeCoverage\Report\Facade as ReportFacade;
$filter = new Filter;
$filter->includeFiles(
[
'/path/to/file.php',
'/path/to/another_file.php',
],
);
$coverage = new CodeCoverage(
(new DriverSelector)->forLineCoverage($filter),
$filter,
);
$coverage->start('<name of test>');
// ...
$coverage->stop();
ReportFacade::fromObject($coverage)->renderOpenClover('/tmp/openclover.xml');
<?php declare(strict_types=1);
use SebastianBergmann\CodeCoverage\Report\Facade as ReportFacade;
use SebastianBergmann\CodeCoverage\Serialization\Unserializer;
$data = (new Unserializer)->unserialize('/path/to/coverage.php');
ReportFacade::fromSerializedData($data)->renderOpenClover('/tmp/openclover.xml');
6,634 followers · starred Mar 2010
374 followers · starred Dec 2017
106 followers · starred Dec 2020
129 followers · starred Apr 2020
PHP
72.2%
HTML
26.5%
Library that provides collection, processing, and rendering functionality for PHP code coverage information.
PHP
8,927
3,877 commits
updated Oct 3, 2026
Provides collection, processing, and rendering functionality for PHP code coverage information.
You can add this library as a local, per-project dependency to your project using Composer:
composer require phpunit/php-code-coverage
If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
composer require --dev phpunit/php-code-coverage
<?php declare(strict_types=1);
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\Driver\Selector as DriverSelector;
use SebastianBergmann\CodeCoverage\Filter;
use SebastianBergmann\CodeCoverage\Report\Facade as ReportFacade;
$filter = new Filter;
$filter->includeFiles(
[
'/path/to/file.php',
'/path/to/another_file.php',
],
);
$coverage = new CodeCoverage(
(new DriverSelector)->forLineCoverage($filter),
$filter,
);
$coverage->start('<name of test>');
// ...
$coverage->stop();
ReportFacade::fromObject($coverage)->renderOpenClover('/tmp/openclover.xml');
<?php declare(strict_types=1);
use SebastianBergmann\CodeCoverage\Report\Facade as ReportFacade;
use SebastianBergmann\CodeCoverage\Serialization\Unserializer;
$data = (new Unserializer)->unserialize('/path/to/coverage.php');
ReportFacade::fromSerializedData($data)->renderOpenClover('/tmp/openclover.xml');
6,634 followers · starred Mar 2010
374 followers · starred Dec 2017
106 followers · starred Dec 2020
129 followers · starred Apr 2020
PHP
72.2%
HTML
26.5%