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

在虚拟机(Homestead)中使用Laravel运行黄昏时遇到端口3306和33060问题,具体取决于测试,laravel,homestead,laravel-dusk,Laravel,Homestead,Laravel Dusk,我有一个流浪者/宅地的Laravel项目设置,现在想开始做一些黄昏测试。 当我只是运行一个测试,看看主页是否显示(有一个特定的元素),一切都很好 然而,当我尝试添加第二个测试来实际创建用户并登录时,就会出现问题。它无法通过my.env(或.env.dash.local)文件中定义的端口3306连接到DB 问题是Homestead有一个虚拟机正在运行,当从主机连接到SQL DB时,我还必须向DB端口添加一个额外的“0”。所以3306变成33060。因此,有一分钟我尝试将.env.dash.loca

我有一个流浪者/宅地的Laravel项目设置,现在想开始做一些黄昏测试。 当我只是运行一个测试,看看主页是否显示(有一个特定的元素),一切都很好

然而,当我尝试添加第二个测试来实际创建用户并登录时,就会出现问题。它无法通过my.env(或.env.dash.local)文件中定义的端口3306连接到DB

问题是Homestead有一个虚拟机正在运行,当从主机连接到SQL DB时,我还必须向DB端口添加一个额外的“0”。所以3306变成33060。因此,有一分钟我尝试将.env.dash.local中的DB端口更改为33060,然后运行测试,但不再运行主页测试


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

Homestead在虚拟机内部使用端口3306,并在本地机上通过33060公开这个端口(当通过
本地主机
127.0.0.1
连接时)

相反,如果您通过
Homestead.yaml
文件中的IP地址直接连接到虚拟机,那么您可以始终通过
3306
进行连接。在我的例子中,我的家园IP地址是
192.168.10.10
,这允许我将我的
DB_端口定义为
3306
,并让它在我运行测试的任何地方工作


您的另一种选择是使用a覆盖特定于黄昏测试的任何环境变量-这将允许您将
DB\u端口更新为
33060

谢谢,很好的解释。我现在正在通过
Homestead.yaml中的IP地址进行连接,它可以解决我遇到的最初问题。尽管没有关联,但仍有其他东西挡在路上。Algolia搜索无法连接,这是另一个问题的内容:)