PhpStorm Docker PHPUnit 数据库

问题描述 投票:0回答:4
  • I 设置 PhpStorm:PHP、PHPUnit 与 Docker
  • 我在 PhpStorm/数据库查看器中看到架构
  • 我可以在我的应用程序中使用数据库:注册等。
  • 我可以在 PhpStorm 中运行 phpunit
  • 但是如果我想在测试中使用数据库,那么我会收到以下错误:

照亮\数据库\查询异常:SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo 失败:名称无法解析 (SQL:从

tablename
中选择*)

测试在容器中运行,但在 IDE 中损坏。 您知道 PhpStorm 中的问题是什么吗?

mysql laravel docker phpunit phpstorm
4个回答
14
投票

我遇到了这个问题。假设您已经设置了 Docker 容器和 PHP 解释器,这就是我连接到 MySQL 容器的方法:

  1. 从 CLI 运行
    docker network ls
    并看到“lighthouse_default”网络
  2. 转到 PHP > 测试框架并在我的 Docker 容器上进行编辑(单击文件夹)
  3. 将网络模式设置为“lighthouse_default”
  4. 将 lighthouse_mysql_1 图像添加到链接部分

显然,在您的情况下,网络名称可能会有所不同。真正的要点是,我必须确保使用正确的网络并且确保数据库映像位于容器链接中。


6
投票

您使用 docker-compose (您的数据库是否在不同的容器中运行)?

检查您的 CLI 解释器是否正在使用 docker-compose 设置运行


2
投票

我有同样的问题并找到解决方案:

前往:

Settings > Languages & Frameworks > PHP > Test Frameworks

打开:

Edit docker container settings (you need push on folder icon)

在打开的窗口中,您将找到“链接”部分,从列表中添加您的数据库容器,保存所有作品后完美!


如果不同的网络配置出现错误,请更新 docker-compose.yml,在每个容器上添加这句话:

network_mode: bridge

0
投票

我已经解决了@jason-adams here所说的相同问题,但是您必须小心网络名称,以防万一您想使用在 docker-compose 文件中使用的网络名称。

在这个文件中我有类似的内容:

networks:
  backend_blablabla:

...但是当我运行

docker network ls
时,我看到了一个略有不同的网络名称,就我而言,它类似于
{PROJECT_NAME}_backend_blablabla

所以我必须在

Settings > PHP > Test Frameworks > (clicked the folder) on my Docker container > Network mode
上使用它,因为 docker-compose 文件的网络名称不起作用。

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