PhpStorm:运行 来自 Docker 容器的 PHPUnit 数据库测试

PhpStorm: running PHPUnit database tests from Docker container

我将 PhpStorm 配置为 运行 来自 Docker 容器的 PHPUnit 测试。不幸的是,如果测试尝试连接到 MySQL 服务器,我会得到一个错误:

SQLSTATE[HY000] [2002] Connection refused

MySQL 服务器 运行 在同一个容器中。如果我尝试通过一些独立脚本从容器连接到 MySQL 服务器 - 它工作正常。 该应用程序本身也可以正常工作。

其他测试(不使用数据库)工作正常。

知道我的 PhpStorm 配置有什么问题吗?我是跟着官方一步步配置的video tutorial,但是没有涉及到数据库部分

每次我点击 运行 测试按钮时执行的 PhpStorm 运行s 命令:

docker://mycontainer/myapp:v1.0/php /opt/.phpstorm_helpers/phpunit.php --configuration /var/www/myapp/tests/phpunit.xml /var/www/myapp/tests/unit

也许 phpstorm_helpers 有问题?因为它是独立的容器。也许我的应用程序容器和助手容器应该以某种方式链接?

我需要的是 运行 在我只启动一次的现有容器中进行测试。取决于 this thread PhpStorm 还没有这样的功能。

所以我转而使用远程解释器。现在 PhpStorm 通过 SSH 连接到容器。我知道,这有点可怕,但此刻这就是我所需要的。

不过,如果有人想 运行 与 PhpStorm 和 Docker 以适当的方式进行集成测试,thread 就可以了。