Symfony4 SQLite в памяти для тестирования не может заставить его работать - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь использовать SQLite в памяти db для запуска тестов в Symfony 4, но не могу заставить его работать.Мой конфиг выглядит так:

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver: 'pdo_sqlite'
                url: ':memory:'
                memory: true
                #charset: utf8mb4
                #default_table_options:
                #    charset: utf8mb4
                #    collate: utf8mb4_unicode_ci

1 Ответ

0 голосов
/ 22 января 2019

[РЕДАКТИРОВАНИЕ на 2019-01-27]

В моем случае, config / packages / test / doctrine.yaml:

doctrine:
    dbal:
        driver:  pdo_sqlite
        memory:  true
        charset: UTF8

Но для функционального тестирования вам понадобитсясоздать дБ (дБ в памяти = не создано и не сохранено!)

Пример:

<?php
 // tests/Repository/MyRepositoryTest.php
 namespace App\Tests\Controller;

 use App\Repository\MyController;
 use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

 class MyRepositoryTest extend WebTestCase {

     public function testSearch()
     {
         $container = self::$kernel->getContainer();
         $entityManager = $container->get('doctrine')->getManager();

         // Runs the schema update tool using our entity metadata
         $metadatas = $entityManager->getMetadataFactory()->getAllMetadata();
         $schemaTool = new SchemaTool($entityManager);
         $schemaTool->updateSchema($metadatas);

         // @TODO : now you can test !
     }
 }
...