将 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 插件异常

GCOV:使用 GCC 构建时 --coverage 和 --ftest-coverage 有啥区别?

从 coverage.py 运行测试与从测试运行器运行覆盖

在python中使用pytest coverage和codecov.io