Symfony2:使用sqlite进行单元测试

Bri*_*ice 7 sqlite phpunit doctrine symfony

我正在使用phpunit和Symfony2.

我决定使用sqlite进行测试.

我遇到的问题是外键约束被忽略.

我知道我必须执行以下查询才能使用外键:) PRAGMA foreign_keys = ON.

我的问题是:有没有办法在使用sqlite创建数据库模式时始终使用外键?

谢谢 !

Ale*_*ons 3

不幸的是这是不可能的。根据SQLite 文档

假设该库是在启用外键约束的情况下编译的,则应用程序仍必须在运行时使用 PRAGMAforeign_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();
  }
}
Run Code Online (Sandbox Code Playgroud)