Как использовать Doctrine Fixture для загрузки тестовой базы данных для PHP модульного тестирования? - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь настроить среду базы данных для тестирования моих Doctrine классов сущностей ORM без изменения моей реальной базы данных.

Я следовал документации Symfony , но когда Я запускаю php bin/console doctrine:fixtures:load и получаю предупреждение:

Осторожно, "график" базы данных будет очищен. Вы хотите продолжить? (да / нет) [нет]:

Это несмотря на то, что я установил переменную среды в моем .env.test файле:

DATABASE_URL = mysql: // testUser:testPassword@127.0.0.1/graph_test

Изменить: вот весь .env.test файл:

# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther

# Database test
DATABASE_URL=mysql://testUser:testPassword@127.0.0.1/graph_test

Я пытался изменить свой test/bootstrap.php файл, но получаю то же самое предупреждение.

Есть ли способ указать doctrine взять значение DATABASE_URL из файла .env.test? Любая помощь будет принята с благодарностью.

PS Нет необходимости в более чем одном тестовом файле .env.

Ответы [ 3 ]

3 голосов
/ 11 июля 2020

Если вы используете php bin/console doctrine:fixtures:load --env=test, вы повлияете только на вашу тестовую базу данных.

1 голос
/ 11 июля 2020

Если вы хотите загрузить конфигурацию, убедитесь, что она либо определена в .env.local, либо, если вы используете настраиваемую среду, например test, добавьте параметр --env=test в свои команды

  php bin/console doctrine:fixtures:load --env=test
  php bin/console server:run --env=test
0 голосов
/ 11 июля 2020

doctrine тесты включают в себя выполнение миграций, чтобы иметь одинаковые данные в базе данных для каждого тестового запуска.

со страницы, которую вы опубликовали ...

Сброс База данных автоматически перед каждым тестом¶

Это вызовет сообщение Careful, database ... will be purged. Это предупреждение, а не ошибка.

...