PhpStorm Docker PHPUnit 数据库

T1k*_*1k3 8 mysql phpunit phpstorm laravel docker

  • 设置了PhpStorm: PHP, PHPUnit with Docker
  • 我在 PhpStorm/Database 查看器中看到架构
  • 我可以在我的应用程序中使用数据库:注册等。
  • 我可以在 PhpStorm 中运行 phpunit
  • 但是如果我想在测试中使用数据库,那么我会收到以下错误:

Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name does not resolve (SQL: select * from tablename)

测试在容器中工作但在 IDE 中失败。你有什么想法 PhpStorm 有什么问题吗?

小智 6

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

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


小智 5

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

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

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

  • 这也为我解决了 laradock 的问题(步骤 1-3,跳过步骤 4)。网络名称是“laradock_backend” (2认同)