PHPUnit没有这样的文件或目录

时间:2018-02-18 17:46:35

标签: phpunit symfony4

我试图用PHPUnit和Symfony4测试我的RoomRepository。我使用composer安装了symfony / phpunit-bridge。我创建了一个名为Room的简单实体,其中包含一个id和name attributs,以及一个存储库方法,用于通过其id获取Room。

public function get(int $id): ?Room
{
    /** @var Room $room */
    $room = $this->findOneBy(['id' => $id]);

    return $room;
}

我的测试很简单,你可以看到:

public function testGet(): void
{
    /** @var RoomRepository $repository */
    $repository = $this->em->getRepository(Room::class);

    $room = $repository->get(1);

    $this->assertCount(1, $room);
}

我是测试的新手,我不知道这是否是正确的方法。我按照Symfony文档。

因此,当我执行以下命令时:./ verndor / bin / simple-phpunit,我收到此错误:" Doctrine \ DBAL \ Exception \ ConnectionException:驱动程序中发生异常:SQLSTATE [HY000] [2002]没有这样的文件或目录"

我很确定这是一个共同的错误,很容易修复......

此外,我写了其他简单的断言,效果很好。我不认为它与PHPUnit配置有关。

这里有关于我的环境的一些信息:

  • PHP 7.1
  • Symfony4.0.5
  • PHPUnit 5.7.27
  • 使用Laradock的Docker(容器:mysql,apache2,workspace)

感谢大家阅读我的帖子并度过了愉快的一天:)

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题 - 我忘了将数据库url添加到phpunit.xml.dist文件中。你必须添加:

<phpunit ...>
  <php>
    ...
    <env name="DATABASE_URL" value="mysql://username:password@server:port/database" />
    ...
  </php>
  ...
</phpunit>

当然使用您自己的凭据而不是占位符。