无需phpunit即可获得报道

时间:2016-11-12 12:32:47

标签: php code-coverage xdebug

我有问题从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()函数,而不是包。 我不知道我是否必须采取不同的措施来实现这一目标。

1 个答案:

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