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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7
chowjiawei

file

file

这样子就可以

1年前 评论
陈先生 1年前

改成 host.docker.internal

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

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

1年前 评论

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!