我正在努力让 Xdebug 在 PhpStorm 2020 上的 PHP 测试文件中工作。
我需要调试一些测试类以及 Xdebug 扩展,但我总是得到这个:
Cannot find file '/project_path/Standard input code' locally.
To fix it set server name by environment variable PHP_IDE_CONFIG and restart debug session.
我尝试了在网上找到的所有方法来修复它,但在我的情况下似乎没有任何效果。
我尝试将
PHP_IDE_CONFIG
设置为环境变量并设置为 localhost
,还在 IDE 中添加 localhost 服务器,但仍然没有任何效果。我的同事无需进行任何特定配置即可让 Xdebug 在他们的 IDE 中工作。
“正常”PHP 文件可以工作,我仅在测试文件上遇到此问题。
有什么想法吗?
Xdebug 看到这个伪造文件
Standard input code
并向我们发送它的调试数据。由于我们不知道将其映射到哪里,因此我们会向您显示错误消息。PHP | Servers
映射,然后取消选中 PHP | Debug | Break at first line when no mapping specified
来解决该问题。
对于任何遇到这种情况的人来说,根本问题是 PHPUnit 通过创建一些内存中的 PHP 代码来为每个测试打开一个子进程,这些代码被发送到该进程的标准输入。
因此,如果您想调试测试,请确保在 phpunit.xml 中将“processIsolation”设置为“false”。这样 PHPUnit 就不会创建子进程,并且 xdebug 也不会陷入困境。
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
processIsolation="false"
>