无需测试框架使用phpdbg测量单PHP脚本测试覆盖率问题求助
问题核心原因
你把--coverage-html参数放在了目标脚本hello.php的后面,这部分参数会被识别为传递给PHP脚本的运行参数,phpdbg本身不会解析处理,因此不会触发覆盖率报告生成逻辑。
正确操作步骤
- 先删除之前的空coverage目录(可选,避免残留影响)
rm -rf coverage && mkdir coverage
- 调整参数顺序,将phpdbg的覆盖率参数放在目标脚本之前执行:
phpdbg -qrr --coverage-html coverage hello.php
如果执行后仍无报告,可临时关闭CLI模式下的OPcache避免代码优化影响覆盖率采集:
phpdbg -qrr -d opcache.enable_cli=0 --coverage-html coverage hello.php
- 执行完成后即可在
coverage目录下看到完整的HTML覆盖率报告,打开index.html即可查看详细覆盖情况,你的示例脚本会显示50%行覆盖率(if分支未执行、else分支已执行)。
扩展验证(可选)
如果只想快速在命令行查看覆盖率结果,不需要HTML报告,可以直接执行文本输出命令:
phpdbg -qrr --coverage-text hello.php
内容的提问来源于stack exchange,提问作者Alex028502
相关产品推荐
相关产品推荐

