discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
sebastianbergmann/php-code-coverage · source
Snapshot 0 · 2026-11-04T12:47:21Z · PHP · BSD-3-Clause
Content fingerprint
def9b66c9347eab5823247efbe692b642093953a3b05d489a9915681183591abGitHub description at capture
Library that provides collection, processing, and rendering functionality for PHP code coverage information.
README at capture
# phpunit/php-code-coverage
[](https://packagist.org/packages/phpunit/php-code-coverage)
[](https://github.com/sebastianbergmann/php-code-coverage/actions)
[](https://codecov.io/gh/sebastianbergmann/php-code-coverage)
Provides collection, processing, and rendering functionality for PHP code coverage information.
## Installation
You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
```
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
```
## Usage
### Collecting code coverage data and generating a report
```php
<?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');
```
### Generating a report from serialized code coverage data
```php
<?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');
```