猿问

如何使用 Doctrine Fixture 加载测试数据库进行 PHP 单元测试?

我正在尝试设置一个数据库环境来测试我的 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文件,但收到相同的警告。


DATABASE_URL有没有办法告诉原则从文件中获取值.env.test?任何帮助将不胜感激。


PS 不需要多个测试 .env 文件。


肥皂起泡泡
浏览 193回答 3
3回答

哔哔one

如果你使用php bin/console doctrine:fixtures:load --env=test你只会影响你的测试数据库。

慕侠2389804

当您想要加载配置时,请确保它是在 .env.local 中定义的,或者如果您使用自定义环境(例如将参数test添加--env=test到命令中)  php bin/console doctrine:fixtures:load --env=test   php bin/console server:run --env=test

万千封印

学说测试包括运行迁移,以便每次测试运行时数据库中都有相同的数据。从您发布的页面...每次测试前自动重置数据库¶这将导致消息Careful, database ... will be purged.“这是警告,而不是错误”。
随时随地看视频慕课网APP
我要回答