不使用phpunit获取覆盖率报告


Get coverage report without phpunit

从phpunit/php-code-coverage获取覆盖率报告有问题。

当我这样做的时候:

xdebug_start_code_coverage();
// code
print_r(xdebug_get_code_coverage());

我得到了预期的覆盖率信息。我决定使用phpunit/php-code-coverage来处理结果的导出。我正在尝试使用存储库上的建议:

$coverage = new 'SebastianBergmann'CodeCoverage'CodeCoverage;
$coverage->start();
// code
$coverage->stop();
$writer = new 'SebastianBergmann'CodeCoverage'Report'Clover;
$writer->process($coverage, '/tmp/clover.xml');

则结果为空。当我用xdebug_get_code_coverage()看是否有结果时,它也是空的。如果我删除$coverage->stop(),我得到的结果,但只是与xdebug_get_code_coverage()函数,而不是与包。我不知道我是否需要做一些不同的事情来让它工作

需要额外的步骤。将您想要覆盖的文件添加到白名单中。

$driver = 'SebastianBergmann'CodeCoverage'Driver'Xdebug;
$filter = new 'SebastianBergmann'CodeCoverage'Filter;
$filter->addDirectoryToWhitelist('/directory');
$coverage = new 'SebastianBergmann'CodeCoverage'CodeCoverage($driver, $filter);
$coverage->start();
// code
$coverage->stop();
$writer = new 'SebastianBergmann'CodeCoverage'Report'Clover;
$writer->process($coverage, '/tmp/clover.xml');