我有问题从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()
函数,而不是包。
我不知道我是否必须采取不同的措施来实现这一目标。
答案 0 :(得分:2)
需要额外的步骤。将要覆盖的文件添加到白名单。
$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');