Странная проблема в Symfony4: Doctrine работает, я могу проверить схему, создать базу данных и т. д., используя php bin/console doctrine:schema:create
. Но мой тест PHPUnit не имеет соединения. Запустив ./bin/phpunit
, я получаю исключение SQLSTATE[HY000] [2002] No such file or directory
.
Я выполнил шаги в документации по загрузке ядра: http://symfony.com/doc/current/testing/doctrine.html
Мой код:
class PersistingResultTest extends KernelTestCase
{
protected $em;
protected function setUp()
{
$kernel = self::bootKernel();
$this->em = $kernel->getContainer()
->get('doctrine')
->getManager();
}
public function testPersistingLogFile()
{
// Just a simple schema command to test connection
$tool = new SchemaTool($this->em);
$tool->createSchema($this->em->getMetadataFactory()->getAllMetadata());
}
protected function tearDown()
{
parent::tearDown();
$this->em->close();
$this->em = null; // avoid memory leaks
}
}
Кто-нибудь знает, почему это происходит? Жук?
РЕДАКТИРОВАТЬ:
По-видимому, файл .env
не читается должным образом. Я переместил переменную среды DATABASE_URL
в файл doctrine.yml
, и теперь она работает.