我试图让PHP_CodeCoverage库为最简单的情况工作以创建 HTML 代码覆盖率报告,但失败了。我安装了 PHP 和 Xdebug。我宁愿不指定我正在使用的版本,因为我希望我忽略了一些简单的东西,但我会根据要求提供这些细节。现在,我只想说,我正在使用它们的非常新版本。
为了使它尽可能简单,我将它提炼成 2 个文件,但我仍然无法让它做我想做的事。这2个文件是composer在安装coverage库时自动生成的vendor/autoload.php,以及正在使用该库的文件。该文件位于project-root/src/CoverageTest.php
. 自动加载文件位于project-root/vendor/autoload.php
.
当我php src/CoverageTest.php
从终端运行时,它会生成一个 HTML 报告。当我查看报告时,在代码覆盖率表中,只有一行设置为“n/a”或“0/0”。它不报告任何覆盖范围存在或缺失。它没有说任何关于特定文件、类、函数或行的内容。在很大程度上,您在此测试文件中看到的代码与其README 页面上的代码相同。这是代码:
<?php
require __DIR__.'/../vendor/autoload.php';
$coverage = new \SebastianBergmann\CodeCoverage\CodeCoverage;
$coverage->start('<name of test>');
class MathGenius
{
public function add($first, $second)
{
return $first + $second;
}
}
$guru = new MathGenius();
$sum = $guru->add(1, 1);
$coverage->stop();
$writer = new \SebastianBergmann\CodeCoverage\Report\Html\Facade;
$writer->process($coverage, __DIR__.'/../code-coverage-report');