PHPUnitTest不连接到Symfony3中的Test-DB

时间:2018-01-10 13:30:33

标签: php symfony phpunit

我想在我的项目中实现一些小的计算测试并设置一个测试数据库(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中的数据库更新到测试数据库时,它会成功。

这是数据库输入测试的最佳实践(如果不是,那么)我错在哪里?

1 个答案:

答案 0 :(得分:1)

您的一个测试可能是尝试执行想要设置数据库连接的Symfony代码。要确保Symfony(或更确切地说,Doctrine)也在测试模式下使用正确的数据库,请将其添加到app/config/config_test.yml文件中:

doctrine:
  dbal:
    dbname: symfony_tests

这应该使通过测试运行的任何连接都连接到正确的数据库。

请注意,您发布的链接适用于Symfony 4.此主题的Symfony 3.x docs也提到了上述方法。