覆盖率驱动(如PCOV)在收集数据时,有一个关键配置 pcov.directory(Xdebug也有类似机制)。当这个参数未明确设置时,驱动会自动尝试在项目根目录下寻找 srclibapp 等常见目录进行扫描。Hyperf生成的代理类目录(例如 ./runtime/container/proxy)通常不在此默认扫描范围内,导致覆盖率数据遗漏。
如果不设置,即使在phpunit.xml 中配置 source

<source>
<include>
<!-- 需要统计单元测试覆盖率的文件 -->
<directory suffix=".php">./runtime/container/proxy</directory>
<directory suffix=".php">./app</directory>
</include>
<exclude>
<!-- 生产单元测试覆盖率时,需要忽略的文件 -->
<directory suffix=".php">./app/excludeFile</directory>
</exclude>
</source>

设置了,在覆盖率界面看到了目录结构,覆盖率依然会全部为0。覆盖率驱动未扫描,PHPUnit无法分析。


使用xdebug方式

zend_extension=xdebug.so
xdebug.mode=coverage

 

这一行目前我没有加都能挣:如果使用Xdebug,对应的配置项为 xdebug.coverage.include,可设置为 xdebug.coverage.include="*" 或指定具体路径。

 

使用pcov方式
extension=pcov.so
pcov.directory=.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!