PhpStorm:“在覆盖范围内运行”导致“无法加载 Xdebug - 扩展已加载”

Bri*_*ood 1 phpunit phpstorm

我刚刚将我的 PhpStorm 项目从 PHPUnit 4.x 升级到 PHPUnit 5.x。运行我的单元测试工作正常。

为了让“运行覆盖”工作,我必须编辑我的运行/调试配置并添加--whitelist=/path/to/whitelisted/dir到测试运行器选项。现在,当我选择“Run with coverage”时会生成覆盖率,但是我收到了这个 Xdebug 警告。

Testing started at 12:06 PM ...
/usr/local/opt/php56/bin/php -dzend_extension=/usr/local/opt/php56-
xdebug/xdebug.so -dxdebug.coverage_enable=1 
/Users/bwood/code/php/WpsConsole/vendor/phpunit/phpunit/phpunit --
whitelist=/Users/bwood/code/php/WpsConsole/src --coverage-clover /Users/bwood/Library/Caches/PhpStorm2017.3/coverage/WpsConsole$NEW.coverage --no-configuration /Users/bwood/code/php/WpsConsole/tests/UnitTests --teamcity

Cannot load Xdebug - extension already loaded
PHPUnit 5.7.27 by Sebastian Bergmann and contributors.
Run Code Online (Sandbox Code Playgroud)

我认为问题是正在调用 php

-dzend_extension=/usr/local/opt/php56-xdebug/xdebug.so
Run Code Online (Sandbox Code Playgroud)

但我不知道在哪里可以删除该选项。我正在测试控制台应用程序,因此没有网络服务器配置。

小智 12

我有两个不同的问题导致了同样的情况。(我说已经加载了两次)。

第一个是上述 PHPStorm 中的调试器扩展字段。我解决了这个问题,但仍然有问题。

然后我跑了:

>php --ini

Cannot load Xdebug - it was already loaded
Configuration File (php.ini) Path: /usr/local/etc/php/7.2
Loaded Configuration File:         /usr/local/etc/php/7.2/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.2/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.2/conf.d/ext-opcache.ini
Run Code Online (Sandbox Code Playgroud)

由于所有这些文件都在同一个基本目录中,我去了 /usr/local/etc/php

$:/usr/local/etc/$ grep -r 'xdebug' .
./php/7.2/php.ini:zend_extension="xdebug.so"
./php/7.2/php.ini:zend_extension="xdebug.so"
Run Code Online (Sandbox Code Playgroud)

这表明问题出在我的 php.ini 文件中。出于某种原因,我把它放在了 php.ini 文件的顶部。

zend_extension="xdebug.so"
zend_extension="xdebug.so"
[PHP]
Run Code Online (Sandbox Code Playgroud)

我删除了其中一行,警告消失了!