phpunit/php-code-coverage

March 10, 2026 ยท View on GitHub

Latest Stable Version CI Status codecov

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:

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 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 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');