在 Symfony Flex / Symfony 4 的同一台机器上测试和开发环境
Test and Dev Enviroment on same machine in Symfony Flex / Symfony 4
我可以将我的数据库配置放在 config/packages/test/ 中的配置文件中吗?
我想 运行 在我的开发 PC 上进行测试并并行进行开发工作。
在 Symfony 3 中我有 2 个配置文件
config_test.yaml and config_dev.yaml
我可以在其中放置 2 个不同的数据库连接。
现在数据库连接在 .env 文件中,所以我不能有 2 个。
我还需要 运行 我的固定装置和数据库助手以及 2 个数据库(开发和测试)分开:
php bin/console doctrine:schema:update --force --env=dev
php bin/console doctrine:fixtures:load --no-interaction --env=dev
解决方案是从 .env 文件中删除数据库连接并再次将其移动到单独的配置文件中:
config/packages/开发/doctrine.yaml:
parameters:
DATABASE_URL: 'mysql://root@localhost:3306/database'
和
config/packages/测试/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
我可以将我的数据库配置放在 config/packages/test/ 中的配置文件中吗?
我想 运行 在我的开发 PC 上进行测试并并行进行开发工作。 在 Symfony 3 中我有 2 个配置文件
config_test.yaml and config_dev.yaml
我可以在其中放置 2 个不同的数据库连接。 现在数据库连接在 .env 文件中,所以我不能有 2 个。
我还需要 运行 我的固定装置和数据库助手以及 2 个数据库(开发和测试)分开:
php bin/console doctrine:schema:update --force --env=dev
php bin/console doctrine:fixtures:load --no-interaction --env=dev
解决方案是从 .env 文件中删除数据库连接并再次将其移动到单独的配置文件中:
config/packages/开发/doctrine.yaml:
parameters:
DATABASE_URL: 'mysql://root@localhost:3306/database'
和 config/packages/测试/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