laradock 搭建的项目无法进行单元测试
背景
laradock 搭建项目后,在项目创建测试文件测试时发生报错
原因
搭建 laradock 时会让修改 DB_HOST=mysql,猜想可能是为了走容器内部网络,将 DB_HOST 改为 127.0.0.1 后验证能够执行单元测试
快速入门《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 协议》,转载必须注明作者和本文链接
这样子就可以
改成
host.docker.internal
macOS 的话,可以用 OrbStack,自动为容器绑定域名,无论是宿主机还是容器内都可以通过域名访问到对应容器的服务!
单元测试有独立的phpunit.xml配置。不用依赖env文件