我想在我的项目中实现一些小的计算测试并设置一个测试数据库(symfony_tests
),只有几个条目,但结构与主要条目相同。
根据docs,我可以将测试数据库与PHPUnit一起使用,如下所示:
phpunit.xml.dist
...
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="app/" />
<env name="KERNEL_CLASS" value="AppKernel" />
<env name="DATABASE_URL" value="mysql://username:password@localhost/symfony_tests" />
</php>
...
但是,当运行phpunit
时,它仍然连接到主数据库并失败。当我将parameters.yml
中的数据库更新到测试数据库时,它会成功。
这是数据库输入测试的最佳实践(如果不是,那么)我错在哪里?
答案 0 :(得分:1)
您的一个测试可能是尝试执行想要设置数据库连接的Symfony代码。要确保Symfony(或更确切地说,Doctrine)也在测试模式下使用正确的数据库,请将其添加到app/config/config_test.yml
文件中:
doctrine:
dbal:
dbname: symfony_tests
这应该使通过测试运行的任何连接都连接到正确的数据库。
请注意,您发布的链接适用于Symfony 4.此主题的Symfony 3.x docs也提到了上述方法。