Collect code coverage data and generate a report
mainTo collect coverage, create a Filter to specify which files to include, use a DriverSelector to obtain a coverage driver (e.g., for line coverage), and instantiate CodeCoverage. Use $coverage->start() and $coverage->stop() to wrap the code you wish to measure. Finally, use ReportFacade::fromObject($coverage) to render the results, such as an OpenClover 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>');
// ... run your code ...
$coverage->stop();
ReportFacade::fromObject($coverage)->renderOpenClover('/tmp/openclover.xml');