我正在尝试将我的 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
我的假设是您的自动加载器文件位于
/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
以实际生成自动加载文件。
我的问题是我没有正确设置测试框架(设置->PHP->测试框架)。我通过远程解释器添加了 PHP 单元来使用 docker-compose 并且它可以工作。
我在这篇文章中找到了解决方案。