Symfony2: модульное тестирование с помощью sqlite

Я использую phpunit с Symfony2.

Я решил использовать sqlite для своих тестов.

проблема в том, что ограничения внешних ключей игнорируются.

Я знаю, что я должен выполнить следующий запрос, чтобы использовать внешние ключи : PRAGMA foreign_keys = ON).

мой вопрос : есть ли способ, чтобы всегда использовать внешние ключи при создании схемы базы данных с помощью SQLite ?

спасибо !

1 ответов


к сожалению, это невозможно. Соответственно документация SQLite:

предполагая, что библиотека скомпилирована с включенными ограничениями внешнего ключа, он все равно должен быть включен приложением во время выполнения, используя Команда foreign_keys ПРАГМА.

Я бы предложил создать свой собственный класс тестового случая и использовать метод setUp() для включения внешних ключей.

class SQLiteTestCase extends \PHPUnit_Framework_TestCase
{
  protected function setUp()
  {
    parent::setUp();
    // Here add your code to enable foreign keys
  }
}

class MyTest extends SQLiteTestCase
{
  protected function setUp()
  {
    // Setup your test data-set here
    parent::setUp();
  }
}