Тестирование и разработка среды на одном компьютере в Symfony Flex / Symfony 4 - PullRequest
0 голосов
/ 27 апреля 2018

Могу ли я поместить свою конфигурацию базы данных в файл конфигурации в config / packages / test / как-нибудь?

Я хочу запустить свои тесты на своем ПК для разработки и выполнять работу разработчика параллельно. В Symfony 3 у меня было 2 файла конфигурации

config_test.yaml и config_dev.yaml

где я мог бы установить 2 разных соединения с базой данных. Теперь соединение с базой данных находится в файле .env , поэтому я не могу иметь 2 из них.

Мне также нужно отдельно запускать свои приборы и помощников баз данных, а также 2 базы данных (dev и test):

php bin/console doctrine:schema:update --force --env=dev
php bin/console doctrine:fixtures:load --no-interaction --env=dev

1 Ответ

0 голосов
/ 24 мая 2018

решение заключалось в том, чтобы удалить соединение базы данных из файла .env и снова переместить его в отдельные конфигурационные файлы:

конфиг / пакеты / DEV / doctrine.yaml:

parameters:
    DATABASE_URL: 'mysql://root@localhost:3306/database'

и конфигурации / пакеты / тест / doctrine.yaml:

parameters:
    DATABASE_URL: 'mysql://root@localhost:3306/database_test'

и в главном файле конфигурации доктрины config / packages / doctrine.yaml:

doctrine:
    dbal:
        url: '%DATABASE_URL%'

также в phpunit.xml.dist:

<env name="DATABASE_URL" value="mysql://root@localhost:3306/database_test" />

Теперь вы можете иметь свою среду тестирования и разработки в одной и той же системе, и ваша база данных не будет загрязнена данными тестирования, и вы можете обновить свои базы данных с помощью:

php bin/console doctrine:schema:update --force --env=dev
php bin/console doctrine:schema:update --force --env=test
...