При запуске Dusk с Laravel на виртуальной машине (Homestead) возникают проблемы с портами 3306 и 33060 в зависимости от тестов

У меня есть настройка проекта Laravel с Vagrant/Homestead, и теперь я хочу начать выполнять некоторые тесты Dusk. Когда я просто запускаю тест, чтобы увидеть, отображается ли домашняя страница (есть ли определенный элемент), все в порядке.

Однако, когда я пытаюсь добавить второй тест, который фактически создает пользователя и входит в систему, возникают проблемы. Он не может подключиться к БД через порт 3306, указанный в моем файле .env (или .env.dusk.local).

Дело в том, что в Homestead эта виртуальная машина работает, и при подключении с моего хост-компьютера к моей базе данных SQL мне также нужно добавить дополнительный «0» к порту БД. Таким образом, 3306 становится 33060. Итак, на минуту я попытался изменить порт БД в .env.dusk.local на 33060, после чего тест проходит нормально, но больше не является тестом домашней страницы.

До сих пор я искал это решение, думая, что оно связано с моей настройкой/проблемой, но оно не привело меня ни к чему: OverrideDbPort


person Arne    schedule 27.11.2019    source источник


Ответы (1)


Homestead использует порт 3306 внутри виртуальной машины и предоставляет этот же порт через 33060 на вашей локальной машине (при подключении через localhost или 127.0.0.1).

Вместо этого, если вы подключаетесь к своей виртуальной машине напрямую через IP-адрес в вашем файле Homestead.yaml, вы всегда можете подключиться через 3306. В моем случае мой IP-адрес Homestead — 192.168.10.10, и это позволяет мне определить мой DB_PORT как 3306 и заставить его работать везде, где я запускаю тесты.

Другой альтернативой является использование файла среды Dusk, чтобы переопределить любые переменные среды, специфичные для к вашим тестам Dusk, что позволит вам обновить DB_PORT до 33060.

person James    schedule 27.11.2019
comment
Спасибо, хорошее объяснение. Теперь я подключаюсь по IP-адресу в Homestead.yaml, и это работает с первоначальной проблемой, с которой я столкнулся. Что-то еще стоит на пути, хотя и не связано. Поиск Algolia не может подключиться, это материал для другого вопроса SO :) - person Arne; 28.11.2019