【问题标题】:Test and Dev Enviroment on same machine in Symfony Flex / Symfony 4Symfony Flex / Symfony 4 中同一台机器上的测试和开发环境
【发布时间】:2018-04-27 15:58:43
【问题描述】:

我可以以某种方式将我的数据库配置放在 config/packages/test/ 的配置文件中吗?

我想在我的开发 PC 上运行我的测试并并行进行开发工作。 在 Symfony 3 中,我有 2 个配置文件

config_test.yaml 和 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

【问题讨论】:

标签: symfony symfony4 symfony-flex


【解决方案1】:

解决方案是从 .env 文件中删除数据库连接并再次将其移动到单独的配置文件中:

config/packages/dev/doctrine.yaml:

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

和 config/packages/test/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

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多