Symfony2: 使用SQLite进行单元测试

8
我正在使用Symfony2的phpunit进行测试。
我决定使用sqlite进行测试。
我的问题是外键约束被忽略了。
我知道必须执行以下查询才能使用外键:PRAGMA foreign_keys = ON)。
我的问题是:是否有一种方法在使用sqlite创建数据库架构时始终使用外键?
谢谢!
1个回答

3
很遗憾,这是不可能的。根据SQLite文档所述:(链接)

假设库已启用外键约束,则仍必须在运行时由应用程序使用PRAGMA 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();
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接