docker - 运行 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
. 我尝试将路径映射更改为指向这些文件,但仍然出现相同的错误。
任何建议表示赞赏。
解决方案
根据评论线程,Phpstorm 目前不支持 Docker WSL PHPUnit 测试环境。
推荐阅读
- node.js - 如何使用 Jsonwebtoken NPM 包验证 Azure AD 颁发的 JWT 令牌?
- sql - SQL:使用前一行的值填充当前行
- mysql - 是否可以在时间戳上对 Mysql 表进行索引
- python - 输入两个单独的列表并输出一个字典列表
- android - 如何从可移动 sd 卡路径中获取所有文件路径和名称?
- c++ - 如何检查用户输入是否超过一个字母并在 C++ 中正确显示
- database - DynamoDB DAX 是否可以水平扩展?
- eclipse-plugin - Eclipse Oxygen 不与 VSS 连接
- ios - 设备锁定时是否可以处理通知操作?
- marklogic - MarkLogic 内容处理框架 (CPF) 管道必须是线性的还是非循环的?