问题标签 [pcov]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
phpunit - 使用除 xdebug 之外的其他代码覆盖率驱动程序
我正在使用 Docker,并且安装了 xdebug。
如果我运行以下命令,我可以确定 xdebug 不会影响测试执行吗?
我读到pcov 可能会更快,但据我所知,必须禁用 xdebug。
是否最好执行以下操作以实现最快的覆盖率而不是运行上述命令?
- 删除/截断 xdebug 配置
运行测试
/li>恢复 xdebug 配置
laravel - 合并由 browser-kit-testing 测试的 laravel 代码的代码覆盖率的奇怪行为
嗨人群情报!
我有不同的测试套件,它们在 teamcity 中以 .cov 文件作为工件进行并行处理,而一个构建配置可以合并代码覆盖。
奇怪的是:用 laravel 的 browser-kit-testing 方法测试的代码是这样的
将在测试套件本身的代码覆盖率中正确显示
但是在将代码覆盖率与其他结果合并后,这些代码将不再被完全覆盖,因为大括号和其他结构代码被标记为未执行
在合并结构代码(如不应计入代码覆盖范围的大括号)后标记为红色
我们的设置:
- 运行 phpunit 9
- 用php7.4
- 和 laravel 6.x
- 在 docker 容器中
- 使用基于 alpine 的自定义图像
- 通过 pcov 进行代码覆盖(比 xdebug 快得多)
- 一开始它在这个星座中工作得很好
- 也许 pcov / phpunit / laravel / browser-kit-testing 中的任何更新导致了这个问题?!
- 但我们不知道为什么它在单个覆盖输出中有效,但在合并中无效
- 通过 phpcov 合并
- 还尝试了 nimut/phpunit-merger - 结果相同
- 使用默认 phpunit-methods 测试的其他代码(例如一些服务类)在合并后也被完美覆盖......似乎只有 browser-kit-testing 覆盖的代码在 .cov-file 中没有明确定义?!
任何有同样问题(或更好:解决方案)的人?
php - 替换 PHP 中的 xdebug_get_headers() 函数
我有一个庞大的项目,测试需要很长时间。XDebug
我想通过从 切换到 来加快速度PCOV
。我看到了巨大的速度提升,但我有一个问题。在我的测试中的一些地方,我xdebug_get_headers()
用来测试标题(显然)。对于 PCOV,此功能不可用,因此我正在寻找替换的想法。
我试过headers_list()
了,但它在 CLI 上不起作用。我怎样才能使它工作?可能无需进行大量重写。
xdebug - PHPUnit 给出没有代码覆盖驱动程序可用
我有一个 laravel 项目,我试图运行phpunit
给我一份覆盖率报告。我运行了命令vendor/bin/phpunit --coverage-html storage/test-output-data/coverage-html
,它给出了输出:
我试图通过执行来解决这种情况sudo pecl install pcov
,但是运行 phpunit 仍然给出了上面相同的错误。
我注意到我有文件/usr/lib/php/20170718/pcov.so
。所以我将该行添加extension=/usr/lib/php/20170718/pcov.so
到我的/etc/php/7.4/cli/php.ini
文件中。但是当我输入时php -v
,我得到了这个错误:
我也有一个名为的文件夹,/usr/lib/php/20190902
但它没有pcov.so
文件。
我也试过做 a sudo pecl install xdebug
,但我遇到了与上面类似的错误,其中 phpunit 说没有驱动程序并且键入php -v
说一些全局变量丢失,类似于 pcov 问题。
我究竟做错了什么?
phpunit - 如何使用 pcov 获得代码覆盖率报告?
我使用 PHP 8.0.5、PHPUnit 9.5.4、PHPStorm 2021.1.2。当在我的 XML 配置文件中,我使用这个:
(这只是我文件的相关部分)
...并从 PHPStorm 启动命令“Run with coverage”,它不会生成覆盖率报告。
我已停用 XDebug。PHPStorm 向我展示:
警告:必须设置 XDEBUG_MODE=coverage 或 xdebug.mode=coverage
我不知道为什么它提到 XDebug,因为我想使用 pcov,因为我在“运行/调试配置”弹出窗口中设置了它。我尝试将报告放在另一个文件夹中,尝试生成 HTML 报告...通过终端启动命令...这些都不起作用。我在 Google 上没有找到任何关于我的问题的信息。
编辑
我尝试了根本没有加载 XDebug 和这个简化的配置(使用--generate-configuration
参数创建)并添加了前面的代码(没有路径覆盖)。
即使图书馆说它仍然不起作用:
生成 Clover XML 格式的代码覆盖率报告...
php - 无法让 PCOV 使用 Xampp 在 Windows 上进行手动测试
我试图让 PCOV 与在带有 XAMPP 的 Windows 机器上的 PHP 7.4.13 上运行的 PHP 应用程序 (Drupal) 一起工作。
我从https://windows.php.net/downloads/pecl/releases/pcov/1.0.9/php_pcov-1.0.9-7.4-ts-vc15-x64.zip安装了 PCOV 1.0.9 线程安全版本并复制过来php_pcov.dll 到 xampp 下的 php/ext 文件夹,并在 php.ini 中启用它。我在 php.ini 中有以下配置
我的 index.php 中有以下代码
我看到外观 php 文件是在相应的文件夹中创建的,但是当我尝试使用以下代码创建组合报告时,我看到 0 代码覆盖率,当我查看源视图时,所有行都显示为未执行。
为什么 PCOV 报告 0 代码覆盖率?PCOV 工作正常吗?还是我必须做更多的事情来启用手动测试的代码覆盖率测试?提前感谢您的投入。
该方法基于这篇文章 - https://tarunlalwani.com/post/php-code-coverage-web-selenium/
phpunit - 如何在 PhpStorm 中使用 PHPUnit 代码覆盖工具 PCOV
我使用 PHP 7.4.13、PhpStorm 2020.1.4、PHPUnit 9.5.8。
我尝试将 PHPUnit 代码覆盖工具与 PCOV 一起使用,但无法正常工作。
我安装了 pcov:
pecl install pcov
我在 php.ini 文件中启用了扩展:
extension="pcov.so"
我的 phpunit.xml 看起来像这样:
当我尝试运行时,phpunit --coverage-html coverage
我得到以下信息:
我认为问题是缺少覆盖驱动程序。但是问题出在哪里,我该如何解决呢?
自3小时以来,我一直在尝试解决此问题,但我找不到方法。
我希望有人能帮帮忙 :)
php - php 单元测试代码覆盖率与有关 function_exists 的驱动器 Pcov 问题
if (!function_exists('birthday_to_age')) {
}
if (!function_exists('log_http_client_response')) {
}
覆盖率报告显示两行“if (!function_exists('function_name'))”未被覆盖,但“if”中的这两个函数被覆盖。很可笑,因为当我用xdebug做驱动的时候,这两行都被覆盖了,但是当我把驱动改成pcov,不做任何其他改动的时候,问题就出现了。
有没有人遇到过这个问题?有人知道如何覆盖这两条线吗?
谢谢
php - PHPUnit 代码覆盖率不包括报告中的文件夹
./app
我有一个项目,我在文件夹上运行 phpunit,代码覆盖率很高。这工作正常,phpunit.xml
文件有这个部分。
从那时起,我改变了结构并制作了命名空间模块。现在代码覆盖率根本不包括模块。我的phpunit.xml
部分现在看起来像这样。
更改后,./app
报告中仅显示文件,没有任何其他文件的指示。甚至报告根是/app
. 我尝试了几种配置,例如仅用./module
作目录,但没有任何效果。
phpunit.xml
正在读取该文件,因为该生成对文件中的更改作出反应。
如何在报告中包含其余文件?
PHPunit 版本为 9.5.13,XDebug 版本为 3.0.3,Code Coverage 版本为 1.0.8