laradock 搭建的项目无法进行单元测试

背景#

laradock 搭建项目后,在项目创建测试文件测试时发生报错
laradock 搭建的项目无法进行单元测试

原因#

搭建 laradock 时会让修改 DB_HOST=mysql,猜想可能是为了走容器内部网络,将 DB_HOST 改为 127.0.0.1 后验证能够执行单元测试
快速入门《Laradock 中文文档》
laradock 搭建的项目无法进行单元测试

解决方案#

DB_HOST=mysql 保持不变,修改 /etc/hosts (macos 系统),增加解析,这样无论是 127.0.0.1/post/1 走容器解析,还是 tests/Feature/PostControllerTest.php 单元测试都可以生效

sudo vi /etc/hosts
127.0.0.1  mysql
127.0.0.1  redis
127.0.0.1 beanstalkd
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7
chowjiawei

file

file

这样子就可以

1年前 评论
陈先生 1年前

改成 host.docker.internal

1年前 评论
秦艽 (楼主) 1年前

macOS 的话,可以用 OrbStack,自动为容器绑定域名,无论是宿主机还是容器内都可以通过域名访问到对应容器的服务!

1年前 评论

单元测试有独立的 phpunit.xml 配置。不用依赖 env 文件

1年前 评论
秦艽 (楼主) 1年前