基于 this 和 this,IntelliJ 和 PhpStorm 不支持从 devspace 或 kubectl 内运行 PHPUnit 测试。
因此,与此同时,我只是通过
Run | Edit Configurations...
: 手动运行 bash 脚本作为脚本
#!/usr/bin/env bash
devspace enter -c foo php artisan config:clear;
kubectl exec -it deploy/foo -- \
vendor/bin/phpunit \
tests/MyExamples/ExampleTest.php -v \
--log-junit reports/unitreport0.xml \
-d memory_limit=-1
有更好的方法吗?我希望至少能够将其与测试运行程序集成,而不是运行脚本。
如果没有,有没有办法在 IntelliJ/PhpStorm 中提取当前的测试名称或类,以便我可以将其作为参数传递到脚本中?
另外,有什么方法可以使 IntelliJ/PhpStorm 中的线条可点击吗?
/bar/foo/tests/MyExamples/ExampleTest.php:123
我认为在 IntelliJ/PHPStorm 中执行此操作的最佳方法是使用
sshd
。这在 devspace 中得到了很好的支持,只需少量的配置。
首先,将此行添加到
devspace.yaml
文件中以在您的实例上设置 sshd:
sshd: {}
然后您应该可以通过 ssh 登录。请注意,您将在
.ssh/config
文件中附加一些行,因此您可能需要验证这些设置:
ssh foo.bar.devspace
然后在 IntelliJ 中,转到
File
→ Settings
→ Tools
→ SSH Configurations
,添加一个新条目:
主持人:
foo.bar.devspace
用户名:
devspace
端口:
10659
(注意:在 ~/.ssh/config 文件中确认此值。默认值 22 可能不正确)
身份验证类型:
Key pair
私钥文件:
/Users/<myusername>/.devspace/ssh/id_devspace_ecdsa
(将myusername替换为你自己的用户名)
确保选中解析配置文件 ~/.ssh/config
然后,在
File
→ Remote Development
中,单击 SSH Connection
→ New Connection
,然后从 连接 下拉列表中选择我们刚刚创建的连接(所有其他字段应显示为灰色),然后单击 检查连接并继续。 (如果这不起作用,您的 shell 可能设置不正确——确保 $SHELL
未设置为 devspace 内的 /sbin/nologin
之类的内容)。
在“选择 IDE 和项目”对话框中,选择 IDE 和版本,并将项目目录设置为某个值——看起来您不能将其设置为空,所以也许您的主目录可以工作。当 docker 桌面在 devspace 客户端上安装 Intelllj/PHPStorm 时,您可能会收到一些确认对话框。
运行 Intellij——它将连接到您的开发空间环境。您可以从容器加载您的项目。它可能会提示您安装 PHP 插件并重新启动。
现在您应该能够运行单元测试——单击测试旁边的绿色箭头以确保其有效。您还应该能够使用断点调试单元测试。