需安装Xdebug并配置coverage模式,通过Composer安装PHPUnit及php-code-coverage,配置phpunit.xml指定src目录,运行--coverage-html命令生成报告,最后验证xdebug_get_code_coverage函数存在。

如果您希望在使用 Composer 管理的 PHP 项目中启用代码覆盖率检测,需将 Xdebug 扩展与 PHPUnit 的覆盖率功能正确集成。以下是完成该任务的具体步骤:
一、安装 Xdebug 扩展
Xdebug 是 PHP 的调试和测试辅助扩展,为 PHPUnit 提供行级覆盖率数据采集能力。必须确保其版本与 PHP 版本兼容,并启用远程调试与覆盖率功能。
1、确认当前 PHP 版本:执行 php -v 命令获取版本号(如 8.2.12)。
2、访问 https://xdebug.org/download,根据 PHP 版本、架构(x64/x86)、线程安全(TS/NTS)选择对应 DLL 或 SO 文件。
3、将下载的 xdebug.so(Linux/macOS)或 php_xdebug.dll(Windows)复制到 PHP 的 ext 目录下。
4、编辑 php.ini,在末尾添加以下配置:
zend_extension=xdebug.so
xdebug.mode=coverage
xdebug.start_with_request=trigger
二、通过 Composer 安装 PHPUnit 及覆盖率支持组件
PHPUnit 自 9.3 起内置对覆盖率的支持,但需显式安装 phpunit/php-code-coverage 包以启用 HTML/XML 报告生成功能。Composer 可统一管理这些依赖。
1、进入项目根目录,执行 composer require --dev phpunit/phpunit ^10.5 安装最新稳定版 PHPUnit。
2、执行 composer require --dev phpunit/php-code-coverage ^10.1 显式引入覆盖率核心库(部分低版本可能已自动包含)。
3、验证安装:运行 ./vendor/bin/phpunit --version,输出应包含 PHPUnit 和 PHP_CodeCoverage 版本信息。
三、配置 phpunit.xml 以启用覆盖率分析
PHPUnit 使用 XML 配置文件定义测试套件、源码路径及覆盖率报告生成规则。必须明确指定被测源码目录,否则覆盖率结果为空。
1、在项目根目录创建 phpunit.xml 文件。
2、写入基础结构,包含
四、运行测试并生成覆盖率报告
执行带覆盖率参数的 PHPUnit 命令后,Xdebug 将在测试过程中收集执行路径数据,PHPUnit 根据该数据生成可视化报告。
1、确保 Xdebug 已加载:运行 php -m | grep xdebug,应返回 xdebug。
2、执行覆盖命令:./vendor/bin/phpunit --coverage-html build/coverage。
3、等待执行完成后,打开 build/coverage/index.html 查看交互式覆盖率报告。
4、若提示 No code coverage driver available,说明 Xdebug 未启用 coverage 模式或版本不匹配,需返回步骤一核查配置。
五、验证 Xdebug 覆盖率驱动状态
PHPUnit 在运行时会探测可用的代码覆盖率驱动。仅当 Xdebug 处于 coverage 模式且版本支持时,才会启用其作为底层采集器。
1、创建临时脚本 check-xdebug.php,内容为:
2、执行 php check-xdebug.php,预期输出为 bool(true)。
3、若输出 bool(false),检查是否遗漏 xdebug.mode=coverage 配置,或是否误用 xdebug.coverage_enable=1(该指令在 Xdebug 3+ 中已废弃)。










