PhpStorm 无法解析 PHPUnit 版本输出。非常奇怪的错误

问题描述 投票:0回答:4

我正在尝试使用 Laravel 项目的 Vagrant box 在 Windows 10 上的 PhpStorm 2017.1 中设置 PHPUnit。我已经设置了一个远程口译员,并且已经使用它几个月了,一切正常。

我被要求进行一些单元测试,因此我按照同事的指示(Mac 上的 PhpStorm)使用 PHPUnit 设置了 PhpStorm,但是当我在供应商文件夹中选择

autoload.php
时,我收到错误消息

“无法解析 PHPUnit 版本输出:无法打开输入文件:

/vagrant/vendorphpunitphpunitphpunit
”(无斜杠)。

如果我在命令行中通过

vagrant ssh
运行 PHPUnit,我的测试执行得很好,并且我可以在 PhpStorm 中手动选择 PHPUnit phar,但是我缺少自动加载的类,所以一切都会失败。

php windows vagrant phpunit phpstorm
4个回答
6
投票

WI-35806——看起来是一样的。今天已标记为已修复。

如果这是正确的票证,那么该修复应该会在 2017.1.2 中提供 - 如果您等不及 2017.1.2 最终版正式发布,您可以尝试 EAP build,届时它将可用。


5
投票

如果您在使用 Docker 设置 PHPUnit 时遇到类似的错误,那么也可能是因为卷绑定错误。

在以下首选项屏幕中,单击文件夹图标

Edit Docker Container Settings
,然后编辑
Volume bindings


0
投票

如果您通过

Docker Compose
配置远程 PHP cli 解释器,如果您在解析 PHPUnit 版本输出时遇到类似的错误,原因可能来自于在
variables
中使用
docker-compose.yaml
(例如,在
$PWD 中使用 
volume binding
)。

例如,如果您像这样挂载当前目录:

...
  volumes:
    - $PWD:/var/www/html

PHPStorm 不知道

$PWD
到底是什么,因此它无法解析 PHPUnit 输出,因为
volume binding
。您应该将变量更改为特定值(例如在本例中更改为
./
):

...
  volumes:
    - ./:/var/www/html

0
投票

我知道这是一个旧线程,但对我来说,问题是我有一个混乱的 docker 设置,并且我正在从调用

docker-compose up
的 Makefile 运行我的项目,而 PHPStorm 运行较新的
docker compose up
命令。

在尝试连接和配置 PHPUnit 并在从自动加载器查找 phpunit 文件时遇到相同的错误后,我决定检查 PHPStorm 服务面板。在那里,我只看到我的 PHP 容器正在运行,而我的项目实际上有 8 个其他 docker 容器正在运行(通过 Makefile)。我进一步挖掘,发现这个 PHP 容器(与 Makefile 启动的 PHP 容器不同)的路径映射完全错误(没有供应商或源代码)。

为了解决这个问题,我只是停止了所有外部正在运行的容器,并从 PHPStorm 的“服务”面板中启动了 docker-compose 设置,然后打开一个终端并验证那里的映射是否正确。

后来我重新配置了远程解释器和自动加载路径 enter image description here

enter image description here

测试中一切正常。

基本上,我的建议是检查服务面板,看看那里的容器是否与您启动的容器相同,因为这是 PHPStorm 将选取并运行您的测试的容器。

© www.soinside.com 2019 - 2024. All rights reserved.