在Virtual Machine(Homestead)中使用Laravel运行黄昏时遇到端口3306和33060的问题,具体取决于测试

问题描述 投票:0回答:1

我有一个Vagrant / Homestead的Laravel项目设置,现在想开始做一些Dusk测试。当我只是运行测试以查看主页是否显示(具有特定元素)时,一切都很好。

但是,当我尝试添加实际上创建用户并登录的第二项测试时,就会出现问题。它无法通过我的.env(或.env.dusk.local)文件中定义的端口3306连接到数据库。

事情是与Homestead一起运行的,这是虚拟机,当从主机连接到SQL DB时,我还必须在DB端口上添加一个额外的“ 0”。因此3306变为33060。所以一分钟,我尝试将.env.dusk.local中的DB端口更改为33060,然后可以正常运行测试,但不再进行主页测试。

到目前为止,我一直在研究此解决方案,认为它与我的设置/问题有关,但并没有给我带来任何进一步的影响:OverrideDbPort

laravel homestead laravel-dusk
1个回答
0
投票

Homestead使用虚拟机内部的端口3306,并通过本地计算机上的33060暴露相同的端口(通过localhost127.0.0.1连接时)。

相反,如果通过Homestead.yaml文件中的IP地址直接连接到虚拟机,则始终可以通过3306连接。在我的情况下,我的Homestead IP地址为192.168.10.10,这使我可以将DB_PORT定义为3306,并使其在我运行测试的任何地方都能正常工作。

您的另一种选择是使用Dusk environment file覆盖特定于Dusk测试的任何环境变量-这将使您可以将DB_PORT更新为33060

© www.soinside.com 2019 - 2024. All rights reserved.