我有一个Vagrant / Homestead的Laravel项目设置,现在想开始做一些Dusk测试。当我只是运行测试以查看主页是否显示(具有特定元素)时,一切都很好。
但是,当我尝试添加实际上创建用户并登录的第二项测试时,就会出现问题。它无法通过我的.env(或.env.dusk.local)文件中定义的端口3306连接到数据库。
事情是与Homestead一起运行的,这是虚拟机,当从主机连接到SQL DB时,我还必须在DB端口上添加一个额外的“ 0”。因此3306变为33060。所以一分钟,我尝试将.env.dusk.local中的DB端口更改为33060,然后可以正常运行测试,但不再进行主页测试。
到目前为止,我一直在研究此解决方案,认为它与我的设置/问题有关,但并没有给我带来任何进一步的影响:OverrideDbPort
Homestead使用虚拟机内部的端口3306,并通过本地计算机上的33060暴露相同的端口(通过localhost
或127.0.0.1
连接时)。
相反,如果通过Homestead.yaml
文件中的IP地址直接连接到虚拟机,则始终可以通过3306
连接。在我的情况下,我的Homestead IP地址为192.168.10.10
,这使我可以将DB_PORT
定义为3306
,并使其在我运行测试的任何地方都能正常工作。
您的另一种选择是使用Dusk environment file覆盖特定于Dusk测试的任何环境变量-这将使您可以将DB_PORT
更新为33060
。