phpunit/php-code-coverage

Library that provides collection, processing, and rendering functionality for PHP code coverage information.

Maintainers

Package info

github.com/sebastianbergmann/php-code-coverage

pkg:composer/phpunit/php-code-coverage

Statistics

Installs: 891 355 269

Dependents: 1 694

Suggesters: 9

Stars: 8 937

Open Issues: 23

13.0.1 2026-02-06 06:05 UTC

This package is auto-updated.

Last update: 2026-03-25 06:22:54 UTC


README

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