问题标签 [php-code-coverage]

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.

0 投票
0 回答
127 浏览

phpunit - Phpunit 代码覆盖率没有捕获我的代码

我正在尝试使用 codeception 和 guzzle 对我用 php 编写的 API 进行 phpunit 测试,所有测试都在运行,但代码覆盖率始终显示 0/0。我在下面分享我的测试功能

我正在使用的命令是

./vendor/bin/codecept 运行 --coverage --coverage-html

0 投票
1 回答
124 浏览

php - PHPUnit 代码覆盖率在 foreach 中报告误报

PHPUnit 代码覆盖率报告了以下函数的 100% 覆盖率,这显然是错误的:

最后一行echo "Not called either"没有运行,但报告说是!

如果我将 foreach 循环的主体重构为另一个函数,则报告将正确:

使用 PHP 7.2.10-0ubuntu0.18.04.1 和 Xdebug 2.6.0 和 PHPUnit 7.3.2 测试 php-code-coverage 6.0.7

我已经尝试了几个旧版本的 phpunit 并得到了相同的结果。

这是一个错误还是我在这里遗漏了什么?

0 投票
2 回答
101 浏览

php - 如何知道 xdebug 是否正确?

我正在运行一些测试,一些报告没有意义,例如:

在此处输入图像描述

在此处输入图像描述

我还有另一个例子: 为什么 xdebug 将 587 和 588 标记为未执行而 589 标记为已执行?

0 投票
3 回答
1176 浏览

php - PHP 多种函数返回类型 String|int

我遇到了一个不寻常的场景,我的函数返回多种类型string or integer。我正在尝试声明返回类型。谁能建议我在这里宣布的最佳做法。

我知道 null 或其他类型我可以使用这样的东西

但我的函数如下所示返回字符串或整数

现在,我想知道我应该如何用返回类型声明我的函数

或者

我也想知道在这种情况下的想法/建议/最佳实践,其中将返回多种返回类型

0 投票
0 回答
28 浏览

code-coverage - 如何确定单元测试的代码覆盖率?

我正在尝试确定一组单元测试的代码覆盖率。我怎样才能做到这一点?

我的机器上安装了 phpUnit 和 XDebug,据我了解,这些工具可以完成这项工作,但我不知道如何操作。

我试过跑步

我取回了 PHPUnit 版本和潜在命令的帮助列表,与代码覆盖率无关。

0 投票
0 回答
109 浏览

phpunit - 如何使 PHPUnit 部分重新生成代码覆盖率 HTML 日志

我正在使用 PHPUnit 使用 HTML 日志记录类型生成代码覆盖率数据。有时我会在整个代码库中生成一个完整的覆盖日志,然后从 PHPStorm 中重新运行覆盖代码库的较小子集的测试。

不幸的是,新生成的覆盖率报告只会显示代码库中较小子集的覆盖率,其余代码库的覆盖率显示为 0%。先前生成的覆盖信息已丢失。

有什么方法可以配置东西,以便将一小部分测试中新生成的覆盖率日志与旧的覆盖率日志结合起来?

0 投票
3 回答
725 浏览

php - Laravel PHP unit with code coverage giving error PHPUnit\Framework\Exception: PHP Fatal error: Uncaught Error: Class 'Route' not found

I am getting following error

PHPUnit\Framework\Exception: PHP Fatal error: Uncaught Error: Class 'Route' not found in /var/www/html/checkout/routes/api.php:24

I have tried answer from Error: Class 'Route' not found in routes.php when testing standalone Laravel package using Orchestra Testbench. It is not working and giving same error.

Below is my XML code:

0 投票
0 回答
30 浏览

php - 我如何跟踪代码覆盖率的进展

我目前使用php-code-coverage工具,我想知道是否有开源工具可以每天记录代码覆盖率(或通过测试进行测试)

我想跟踪代码覆盖率的进展或倒退。

在我的每次测试运行中,我都会生成一份代码覆盖率报告,但我无法跟踪当前报告和上一次报告之间的差异,除非我手动跟踪代码覆盖率。

0 投票
0 回答
342 浏览

php - 带有 Clover 代码覆盖率报告的 PHPUnit:测试未执行且命令退出

我“继承”了一个非常古老的 PHP 项目,仅与 PHP 5.6 兼容,并且没有任何框架编写,我正在尝试为 PHP 7.x “现代化”它,并添加一些单元测试和一些代码检查工具,如带有 Jenkins 的 SonarQube。

该项目有一些可执行脚本,需要一些参数才能正确执行,当我执行 phpunit 并启用 Clover 覆盖的生成时,它会尝试执行它们,但由于缺少所需的参数而失败:

这是files-index.php项目根文件夹中命令的输出,需要一个--source参数才能运行:

我不明白的是为什么如果我在没有启用覆盖率报告的情况下执行 PHPUnit,项目中存在的(少数)测试执行时没有错误(无论如何文件files-index.php目前没有测试):

这是我的phpunit.xml文件:

我哪里错了?

0 投票
1 回答
234 浏览

phpunit - phpunit coverage-unit 不生成报告

在此处输入图像描述

大家好,我对 phpunit 覆盖 html 组件有一些问题。我正确安装了组件并启动命令:

vendor/bin/phpunit --coverage-html tests

测试工作正常,但没有生成 html 报告。附上最终结果。没有出现经典的“以 HTML 格式生成代码覆盖率报告……完成”。

你能帮助我吗?谢谢