2014-10-14 23 views
5

Tôi đang sử dụng phpunit với Symfony2.Symfony2: Thử nghiệm đơn vị với sqlite

Tôi đã quyết định sử dụng sqlite cho các thử nghiệm của mình.

Vấn đề tôi gặp phải là các ràng buộc khóa ngoại được bỏ qua.

Tôi biết tôi phải thực hiện truy vấn sau để sử dụng khóa ngoài: PRAGMA foreign_keys = ON).

Câu hỏi của tôi là: có cách nào để luôn sử dụng khóa ngoại khi tạo lược đồ cơ sở dữ liệu với sqlite không?

Cảm ơn!

Trả lời

2

Rất tiếc, điều đó là không thể. Theo đó để SQLite documentation:

Giả sử thư viện được biên soạn với ràng buộc khoá ngoại được kích hoạt, nó vẫn phải được cho phép bởi các ứng dụng trong thời gian chạy, sử dụng PRAGMA foreign_keys lệnh.

Tôi khuyên bạn nên tạo lớp vỏ thử nghiệm của riêng mình và sử dụng phương thức setUp() để bật khóa ngoại.

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(); 
    } 
}