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

Phpunit PhpStorm:“在覆盖范围内运行”导致“无法加载Xdebug-扩展已加载”,phpunit,phpstorm,Phpunit,Phpstorm,我刚刚将我的PhpStorm项目从PHPUnit 4.x升级到PHPUnit 5.x。运行我的单元测试很好 为了在覆盖率正常的情况下运行,我必须编辑我的运行/调试配置,并将-whitelist=/path/to/whitelist/dir添加到testrunner选项中。现在,当我选择“使用覆盖率运行”时,会生成覆盖率,但我得到了这个Xdebug警告 Testing started at 12:06 PM ... /usr/local/opt/php56/bin/php -dzend_exten

我刚刚将我的PhpStorm项目从PHPUnit 4.x升级到PHPUnit 5.x。运行我的单元测试很好

为了在覆盖率正常的情况下运行,我必须编辑我的运行/调试配置,并将-whitelist=/path/to/whitelist/dir添加到testrunner选项中。现在,当我选择“使用覆盖率运行”时,会生成覆盖率,但我得到了这个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.
我认为问题在于php是用

-dzend_extension=/usr/local/opt/php56-xdebug/xdebug.so

但我想不出在哪里可以取消这个选项。我正在测试一个控制台应用程序,因此没有Web服务器配置。

在PhpStorm中检查您的PHP解释器-xdebug扩展有一个单独的字段。它允许您不在实际的php.ini中加载xdebug,因此普通脚本的执行会更快,并且只在需要调试/覆盖时加载xdebug

根据您目前的信息,您可以在php.ini中找到它。建议的解决方案是将其从该领域中移除


另外,显然,它只适用于CLI内容,涂料不会以任何方式影响基于浏览器的调试,因为它是运行PHP的web服务器,所以IDE不能在那里传递此类参数。

在PhpStorm中检查PHP解释器-xdebug扩展有一个单独的字段。它允许您不在实际的php.ini中加载xdebug,因此普通脚本的执行会更快,并且只在需要调试/覆盖时加载xdebug

根据您目前的信息,您可以在php.ini中找到它。建议的解决方案是将其从该领域中移除


另一方面,显然,它只适用于CLI内容,涂料不会以任何方式影响基于浏览器的调试,因为它是运行PHP的web服务器,所以IDE无法在那里传递此类参数。

我有两个不同的问题导致了相同的情况。我的意思是已经装了两次了

第一个是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
因为所有这些文件都在同一个基本目录中,所以我转到/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"
这表明问题出在我的php.ini文件中。出于某种原因,我把它放在php.ini文件的顶部

zend_extension="xdebug.so"
zend_extension="xdebug.so"
[PHP]

我拆下一根线,警告就消失了

我有两个不同的问题导致了同样的情况。我的意思是已经装了两次了

第一个是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
因为所有这些文件都在同一个基本目录中,所以我转到/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"
这表明问题出在我的php.ini文件中。出于某种原因,我把它放在php.ini文件的顶部

zend_extension="xdebug.so"
zend_extension="xdebug.so"
[PHP]

我拆下一根线,警告就消失了

在PhpStorm中检查PHP解释器-有一个用于xdebug扩展的字段。它允许您不在实际的php.ini中加载xdebug,因此普通脚本的执行会更快,并且只在需要调试/覆盖时加载xdebug。根据您目前的信息,您可以在php.ini中找到它。建议的解决方案是将其从该领域中移除。显然,它只适用于CLI内容,并且不会以任何方式影响基于浏览器的调试,因为它的web服务器运行PHP,所以IDE无法在那里传递此类参数。谢谢@LazyOne。我找到了。有点埋了。在MacOS上:首选项>语言和框架>PHP>CLI解释器>“…”按钮。在那里,我发现设置了额外的调试器扩展。我对你的评论投了赞成票。我还应该做些什么来给你评分呢?在PhpStorm中检查你的PHP解释器-有一个xdebug扩展字段。它允许您不在实际的php.ini中加载xdebug,因此普通脚本的执行会更快,并且只在需要调试/覆盖时加载xdebug。根据您目前的信息,您可以在php.ini中找到它。建议的解决方案是将其从该领域中移除。显然,它只适用于CLI内容,并且不会以任何方式影响基于浏览器的调试,因为它的web服务器运行PHP,所以IDE无法在那里传递此类参数。谢谢@LazyOne。我找到了。有点埋了。在MacOS上:首选项>语言和框架>PHP>CLI解释器>“…”按钮。在那里,我发现设置了额外的调试器扩展。我对你的评论投了赞成票。还有什么我应该做的,以给你的信用在这里?这也是我的情况。我想知道为什么zend_extension=xdebug.so的第二行突然出现在php.ini中……我想这是因为xdebug的一些安装自动添加了这个。还可能升级吗?例如,在一次安装中安装了以下内容:| | |注意:请忽略PECL安装程序发出的消息| |您应该将extension=xdebug.so添加到php.ini |。这对| | Xdebug不起作用。我也一样。谢谢我也是这样。我想知道为什么zend_extension=xdebug.ap的第二行如此突然
出现在php.ini中…我认为这是因为某些xdebug安装自动添加了这个。还可能升级吗?例如,在一次安装中安装了以下内容:| | |注意:请忽略PECL安装程序发出的消息| |您应该将extension=xdebug.so添加到php.ini |。这对| | Xdebug不起作用。我也一样。谢谢