首页 > 解决方案 > 运行 PHPUnit 时,PhpStorm 在 Docker WSL 上找不到 vendor/autoload.php

问题描述

我当前的设置是:PhpStorm、Docker WSL、Ubuntu (WSL)。我所有的项目文件都是本地的,并且在 WSL Ubuntu 中。Docker 容器和 CLI 解释器在 PhpStorm 上设置。

它似乎可以在我的“php-fpm”容器中识别 PHP(它会提取 PHP 信息)。当我运行 PHPUnit 测试时,它看起来像是连接到我的容器。

如果我理解正确,PhpStorm 正在将我的项目文件从 WSL Ubuntu 安装到一个新容器中,该容器使用 Docker 容器“php-fpm”来运行单元测试?但它似乎没有将我的项目文件安装在单元测试容器中。我收到以下错误:

Testing started at 11:54 AM ...
[docker://laradock/php-fpm:latest-7.3/]:php /opt/.phpstorm_helpers/phpunit.php --no-configuration --filter Tests\\Feature\\ExampleTest --test-suffix ExampleTest.php /opt/project/tests/Feature
The value of autoloader is specified, but file doesn't exist '/opt/project/vendor/autoload.php'

Process finished with exit code 1

当我手动启动 Docker 容器(通过 Docker 桌面)创建 PhpStorm 并进入 bash 时,其中没有文件/opt/project但有/opt/.phpstorm_helpers/phpunit.php. 这就是问题所在。我的 Docker 从 WSL 挂载的实际项目文件位于/var/www. 我尝试将路径映射更改为指向这些文件,但仍然出现相同的错误。

任何建议表示赞赏。

码头工人设置

命令行界面

PHP 设置

测试框架设置

标签: dockerphpstormwindows-subsystem-for-linux

解决方案


根据评论线程,Phpstorm 目前不支持 Docker WSL PHPUnit 测试环境。


推荐阅读