Я слежу за документами Symfony (https://symfony.com/doc/current/testing/doctrine.html), пытаясь протестировать мои классы репозитория для моей базы данных MySQL. Соответствующая часть кода выглядит так:
class ProductRepositoryTest extends KernelTestCase
{
/**
* @var \Doctrine\ORM\EntityManager
*/
private $entityManager;
/**
* {@inheritDoc}
*/
protected function setUp()
{
$kernel = self::bootKernel();
$this->entityManager = $kernel->getContainer()
->get('doctrine')
->getManager();
}
public function testSearchByCategoryName()
{
$products = $this->entityManager
->getRepository(Product::class)
->searchByCategoryName('foo')
;
$this->assertCount(1, $products);
}
/**
* {@inheritDoc}
*/
protected function tearDown()
{
parent::tearDown();
$this->entityManager->close();
$this->entityManager = null; // avoid memory leaks
}
}
Когда я выполняю тестовый класс сPhpUnit Я получаю Doctrine \ DBAL \ Exception \ ConnectionException с сообщением: «Произошло исключение в драйвере: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)".
Я сохранил данные соединения с базой данных в DATABASE_URL в файле .env, и соединение работает нормально при выполнении: bin / console doctrine: migrations: migrate
Но, похоже, эта конфигурация не используется для тестирования(потому что «НЕТ» - это не мой пароль в файле .env.) Должен ли я сохранять конфигурацию соединения в другом файле для тестирования? И если да, где я должен хранить конфигурацию, чтобы она использовалась в моемtestcase?
Заранее спасибо за любую помощь!