Docker、PhpStorm 和 PHPUnit - 指定了 autoloader 的值,但文件不存在

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

我正在尝试将我的 PhpStorm 调试器与 PHPUnit 连接。我正在使用 Docker env,并且 docker PHPUnit 内部工作正常。问题是当我单击“测试”目录 PPM -> 运行测试时

我得到了这个:

[docker://environment_php_8_fpm:latest/]:php /opt/.phpstorm_helpers/phpunit.php --no-configuration /opt/project/src/tests
Testing started at 16:19 ...
The value of autoloader is specified, but file doesn't exist '/home/kuba/Work/CodeProjects/advertisement-crawler/src/vendor/autoload.php'

Process finished with exit code 1 

我试图在谷歌中找到解决方案,但很难找到有用的东西。

@编辑 此外,我提供了新路径,我在单击刷新后得到了这个路径 新路径是:/opt/project/src/vendor/autoload.php

现在我在 phpstorm 中运行此命令后收到了新的错误消息

[docker://environment_php_8_fpm:latest/]:php /opt/.phpstorm_helpers/phpunit.php --configuration /opt/project/src/phpunit.xml
Testing started at 18:48 ...

Fatal error: Uncaught Error: Class "PHPUnit_TextUI_ResultPrinter" not found in /opt/.phpstorm_helpers/phpunit.php on line 231

Error: Class "PHPUnit_TextUI_ResultPrinter" not found in /opt/.phpstorm_helpers/phpunit.php on line 231

Call Stack:
    0.0006     469784   1. {main}() /opt/.phpstorm_helpers/phpunit.php:0
PHP Fatal error:  Uncaught Error: Class "PHPUnit_TextUI_ResultPrinter" not found in /opt/.phpstorm_helpers/phpunit.php:231
Stack trace:
#0 {main}
  thrown in /opt/.phpstorm_helpers/phpunit.php on line 231

Process finished with exit code 255

我再次尝试映射目录,但仍然出现错误

php docker phpunit phpstorm
2个回答
0
投票

我的假设是您的自动加载器文件位于

/home/kuba/Work/CodeProjects/advertisement-crawler/vendor/autoload.php
中,而不是 PhpStorm 正在寻找它的
/home/kuba/Work/CodeProjects/advertisement-crawler/src/vendor/autoload.php
中。在您的 docker 文件中,您仅链接了 /src 目录。所以从 docker 中你看不到 /src 之外的文件。

所以我认为您在第一种情况下的映射是正确的,您应该提供

/opt/project/vendor/autoload.php

还要确保首先运行

composer install
以实际生成自动加载文件。


0
投票

我的问题是我没有正确设置测试框架(设置->PHP->测试框架)。我通过远程解释器添加了 PHP 单元来使用 docker-compose 并且它可以工作。

我在这篇文章中找到了解决方案。

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