Мои контейнеры-докеры таковы:
worklog_laravel_app
(приложение Laravel)
worklog_laravel_web
(Nginx)
worklog_laravel_db
(MySQL)
У меня есть две базы данных, настроенные в контейнере worklog_laravel_db
:
Сейчас я нахожусь в процессе написания тестов для моего приложения через docker exec -it
bash
в контейнере worklog_laravel_app
.
Я уже настроил env.testing
на те же переменные, что и .env
, за исключением:
APP_ENV=testing
DB_DATABASE=worklog_test
Но выполнение тестов все равно заканчивается выбором локальной базы данных разработчика (worklog
).
Почему это так? И как мне это решить?
Редактировать 1:
Я проверил это, наблюдая, как посеянные данные в таблице worklog
удаляются после выполнения тестов, и auto_increments
этих таблиц изменяется при каждом запуске теста.
Редактировать 2:
Забыл упомянуть, что моя настройка Docker соответствует настройке DigitialOcean
Редактировать 3:
Мои .env.testing
переменные:
APP_NAME="Work Log"
APP_ENV=testing
APP_KEY={}
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=worklog_laravel_db
DB_PORT=3306
DB_DATABASE=worklog_test
DB_USERNAME=local
DB_PASSWORD={}
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"