我试图用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配置有关。
这里有关于我的环境的一些信息:
感谢大家阅读我的帖子并度过了愉快的一天:)
答案 0 :(得分:2)
我遇到了同样的问题 - 我忘了将数据库url添加到phpunit.xml.dist文件中。你必须添加:
<phpunit ...>
<php>
...
<env name="DATABASE_URL" value="mysql://username:password@server:port/database" />
...
</php>
...
</phpunit>
当然使用您自己的凭据而不是占位符。