运行 PHPUnit 测试时无法加载 Xdebug

Posted

技术标签:

【中文标题】运行 PHPUnit 测试时无法加载 Xdebug【英文标题】:Failing to load Xdebug when running PHPUnit Tests 【发布时间】:2021-07-02 02:25:32 【问题描述】:

这几天我一直有一个选择。当我尝试运行 phpUnit 测试时,我收到一条消息,提示无法加载 Xdebug。我试图重新安装,更改文件路径等,但我无处可去。希望有人可以帮助我:)

PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

【问题讨论】:

只需zend_extension=xdebug 就足以加载 Xdebug 扩展(只要它与其他 PHP 扩展位于同一文件夹中)。 1) 你在 `C:\php\ext` 路径中实际上有一个 Xdebug 扩展文件吗? 2)那是什么文件(你从哪里得到的)?如果它来自 Xdebug 网站——你用什么 URL 下载它(以防它用于错误的 PHP/版本)? 天啊,现在你已经这么说了,简直不敢相信,我使用了错误的 Xdebug 扩展文件,我使用的是 32 位而不是 64 位。感谢您的帮助 :) 【参考方案1】:

加载 xxxx.dll 失败表示 PHP 无法加载扩展文件。这可能有几个原因:

    文件不存在→检查是否存在

    文件权限不正确→检查权限

    文件属于“错误的扩展类型”。可以是:

    扩展名是错误的 PHP 版本 扩展名的位数错误(32 位与 64 位) 错误的 TS 变体(NTS 与 ZTS) PHP 的错误“调试模式”构建(调试或 nodebug)

API 类型(位数除外,您可以使用echo PHP_INT_SIZE; 检查;4 是 32 位,8 是 64 位)反映在 php -i 或 @987654326 的“Zend Extension Build”输出中@。

您可以使用 Xdebug 的 wizard 告诉您要为您的特定设置下载哪个确切文件。

【讨论】:

以上是关于运行 PHPUnit 测试时无法加载 Xdebug的主要内容,如果未能解决你的问题,请参考以下文章

xdebug : phpunit 代码覆盖的致命错误

markdown [代码覆盖率Phpunit]安装Xdebug并使用Phpunit运行代码覆盖率#xdebug #phpunit #code #coverage

带有 Xdebug 的 PHPUnit 测试资源管理器 - VSCode

Composer 自动加载器在运行测试时找不到 PHPUnit

在 Gitlab CI 上更改 Xdebug 模式 PHP Docker

Symfony PHPUnit问题安装Xdebug for --coverage-html