DDEV/Laravel/PHPUnit:PhpStorm 中的设置问题

DDEV/Laravel/PHPUnit: Problems with setup in PhpStorm

在 Mac 上将 Laravel 与 DDEV/Docker 结合使用,我无法直接将 PhpStorm 转换为 运行 具有覆盖范围的 PHPUnit。我遵循这些说明:https://ddev.readthedocs.io/en/stable/users/topics/phpstorm/

我用

开始设置
curl -s "https://laravel.build/myproject?with=mysql,redis,memcached" | bash

一切正常,包括在我使用

打开 Xdebug 后使用 Xdebug 进行调试
ddev xdebug on

PHPUnit 也可以通过控制台正常工作:

ddev exec phpunit 

Composer 版本为 2.1.4。

按照上面的说明,我卡在了第 6 点。

我错过了什么? PHPUnit 位于目录中,它也是作曲家安装的:

使用 composer 2.2 版后,vendor/bin 中的 phpunit 可执行文件不再是符号链接。这是一个 PHP 文件,在流包装器的帮助下包含原始可执行文件,但不允许包含 phpunit:https://github.com/sebastianbergmann/phpunit/issues/4096#issuecomment-585900398

这个bug在composer中解决了: https://github.com/composer/composer/issues/10387#issuecomment-1000246631

在正式发布此修复程序之前,请使用以下方法获取最新的开发版本:

composer self-update --snapshot

此外,您可以将 PhpStorm 配置为使用原始文件:

vendor/phpunit/phpunit/phpunit

感谢你们所有人,非常感谢你们的帮助。

我是这样解决的:

  1. 我安装了 ddev-edge 以避免 composer 2.1.x。在使用稳定版本的 ddev 时,我无法在 config.yaml 中将其更改为 2.2 而不会导致 ddev 重新启动。它仅适用于活动的 docker 实例。
  2. 然后将 ddev 配置为使用最新的 PHP-version 8.1(对于从头开始的新项目,无论如何它都有意义)。
  3. 然后 PHPUnit 的错误更改为一个错误,告诉我 PHP 版本对于 PHPUnit 版本来说太旧了。那是因为 PHPStorm 在连接到 Docker 并检查 CLI 远程解释器时自动选择 PHP 7.4 作为默认值。
  4. 所以我将 PHP 可执行文件从“php”更改为“php8.1”

查看截图。 现在 运行 PHP来自 PHPStorm 的单位工作正常,即使有覆盖。