You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否脱离PHPUnit使用php-code-coverage?Symfony项目覆盖率统计为0%

Symfony遗留系统Selenium自动化测试代码覆盖率统计异常问题

我们维护着一个基于Symfony开发的遗留PHP系统,包含约1000个操作。目前引入了自动化测试团队,使用Selenium开展自动化测试,但无法衡量测试覆盖范围。

为获取大致的覆盖率数据,我们计划使用php-code-coverage工具,思路是在启用了PHP代码覆盖率(基于pcov)的独立域名上执行自动化测试,让该工具像在PHPUnit中一样记录覆盖率。但实际使用中,工具始终统计出0%的覆盖率。

以下是我们用于启用代码覆盖率的代码片段:

<?php

use SebastianBergmann\CodeCoverage\Filter;
use SebastianBergmann\CodeCoverage\Driver\Selector;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport;

use App\Kernel;

require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
return function (array $context) {
    $fileList = shell_exec('find /var/www/html/project/src -type f -name "*.php"');
    $filter = new Filter;
    $filter->includeFiles(preg_split("/\r\n|\r|\n/", $fileList));
    $coverage = new CodeCoverage(
        (new Selector)->forLineCoverage($filter),
        $filter
    );
    $coverage->start(md5(time()));
    $kernalObj = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
    $coverage->stop();
    (new HtmlReport)->process($coverage, 'tmp/code-coverage-report');
    return $kernalObj;
};

我们查阅了部分资料,有的称无法脱离PHPUnit使用php-code-coverage,有的则表示可行。


内容的提问来源于stack exchange,提问作者Nandakumar V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 11:50:13