不使用 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');
我在从 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');