将 PCOV 与 --coverage 一起使用时,代码接收测试失败
Posted
技术标签:
【中文标题】将 PCOV 与 --coverage 一起使用时,代码接收测试失败【英文标题】:Codeception tests fail when using PCOV with --coverage 【发布时间】:2021-05-02 13:59:37 【问题描述】:我的单元/功能测试有问题。 我正在使用 php 7.2、PHPUnit 8.5 和 Codeception 4.1。 我的测试在正常运行时运行得非常好, 但由于某种原因,如果我尝试使用 PCOV 为功能测试或单元测试生成代码覆盖率,它们会立即停止而没有任何警告或错误输出。
vendor/codeception/codeception/codecept --ansi run unit --phpunit-xml --no-exit --coverage-xml
Codeception PHP Testing Framework v4.1.16
Powered by PHPUnit 8.5.14 by Sebastian Bergmann and contributors.
Test.unit Tests (1080) --------------------
MBP145:prjct patrick.barbosa$
当我使用 xdebug 而不是 PCOV 时,我能够运行测试并生成覆盖率而不会遇到任何问题。
有人知道是什么原因造成的吗?
【问题讨论】:
如果它发生在 xdebug 中,我会说 segfault 发生在 xdebug 中。我认为 pcov 也会发生同样的事情。 【参考方案1】:对于遇到类似问题的任何人,我都找到了解决方案。
在 PHP 7.2 中使用 PCOV 运行测试时,Opcache 似乎会导致问题,禁用它可以解决问题并且测试现在可以正常运行。
【讨论】:
以上是关于将 PCOV 与 --coverage 一起使用时,代码接收测试失败的主要内容,如果未能解决你的问题,请参考以下文章
无法在 PyDev 中使用 Coverage,“文件没有统计信息”
将来自 karma-coverage 的 istanbul 测试覆盖率与来自其他来源的覆盖率合并
解析 Xcode 9 生成的 Coverage 文件时 SonarQube SonarSwift 插件异常