PHPUnit 没有这个文件或目录。

4

我正在尝试使用PHPUnit和Symfony 4测试我的RoomRepository。我使用composer安装了symfony/phpunit-bridge。我创建了一个简单的实体,称为Room,它有一个idname属性,以及一个repository方法来根据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文档。

因此,当我执行以下命令时:

./vendor/bin/simple-phpunit

我遇到了这个错误:

Doctrine\DBAL\Exception\ConnectionException: 驱动程序中发生异常:SQLSTATE[HY000] [2002] 没有那个文件或目录

我相信这是一个常见的错误,很容易修复...
此外,我编写了其他简单的断言,它们工作得非常好。 我不认为这与PHPUnit配置有关。
以下是我的环境信息:
  • PHP 7.1
  • Symfony4.0.5
  • PHPUnit 5.7.27
  • Docker和Laradock(容器:mysql,apache2,workspace)
感谢大家阅读我的帖子,祝你们有美好的一天 :)
1个回答

3

我也遇到了相同的问题 - 我只是忘记在phpunit.xml.dist文件中添加数据库URL。你需要添加:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接