Я только что столкнулся со следующим сценарием ...
Представьте, что вы используете базу данных MySQL для своего браузера, но предпочитаете базу данных SQLite для тестирования в Dusk. Я думаю, что это довольно распространенный случай, или может быть. Так что вы можете сделать что-то вроде этого:
в вашем .env
файле:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
в вашем .env.dusk.local
файле:
DB_CONNECTION=sqlite
Кто-то может подумать, что это сработает, но проблема в том, что файлы среды объединяются при запуске Dusk. Другими словами, конфигурация Dusk станет:
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
И если вы посмотрите на конфигурацию Laravel по умолчанию для SQLite:
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],
вы заметите, что он попытается получить базу данных homestead
SQLite в корневом каталоге вашего проекта, которая не существует, и, очевидно, ваш тест не будет выполнен с ошибками типа: users table not found
например, если вы запускаете миграции по умолчанию.