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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 7
chowjiawei

file

file

这样子就可以

4个月前 评论
陈先生 4个月前
陈先生

改成 host.docker.internal

4个月前 评论
秦艽 (楼主) 4个月前

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

4个月前 评论

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

4个月前 评论
秦艽 (楼主) 4个月前

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