不使用phpunit获取覆盖率报告

不使用phpunit获取覆盖率报告,php,code-coverage,xdebug,Php,Code Coverage,Xdebug,从phpunit/php代码覆盖率获取覆盖率报告时遇到问题 当我这样做时: xdebug\u start\u code\u coverage(); //代码 打印(xdebug_get_code_coverage()); 我得到了预期的报道信息。我决定使用phpunit/php代码覆盖率来处理结果的导出。我正在尝试使用存储库中建议的方法: $coverage=new\SebastianBergmann\CodeCoverage\CodeCoverage; $coverage->start();

从phpunit/php代码覆盖率获取覆盖率报告时遇到问题

当我这样做时:

xdebug\u start\u code\u coverage();
//代码
打印(xdebug_get_code_coverage());
我得到了预期的报道信息。我决定使用phpunit/php代码覆盖率来处理结果的导出。我正在尝试使用存储库中建议的方法:

$coverage=new\SebastianBergmann\CodeCoverage\CodeCoverage;
$coverage->start();
//代码
$coverage->stop();
$writer=new\SebastianBergmann\CodeCoverage\Report\Clover;
$writer->process($coverage,'/tmp/clover.xml');
那么结果是空的。当我使用
xdebug\u get\u code\u coverage()
查看是否有结果时,它也是空的。如果我删除
$coverage->stop()
我会得到结果,但只使用
xdebug\u get\u code\u coverage()
函数,而不是包。
我不知道我是否必须做一些不同的事情才能让它工作。

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

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