2014-10-14 14 views
5

Ich benutze phpunit mit Symfony2.Symfony2: Komponententests mit sqlite

Ich entschied mich für sqlite für meine Tests zu verwenden.

Das Problem, das ich habe, ist, dass die Fremdschlüssel Einschränkungen ignoriert werden.

Ich weiß, dass ich die folgende Abfrage ausführen muss, um Fremdschlüssel zu verwenden: PRAGMA foreign_keys = ON).

Meine Frage ist: Gibt es eine Möglichkeit, immer Fremdschlüssel beim Erstellen des Datenbankschemas mit SQLite zu verwenden?

Danke!

Antwort

2

Leider ist es unmöglich. Entsprechend SQLite documentation:

die Bibliothek Unter der Annahme, mit Fremdschlüssel-Constraints kompilieren aktiviert, es immer noch durch die Anwendung zur Laufzeit aktiviert werden muss, mit dem PRAGMA FOREIGN_KEYS Befehl.

Ich würde vorschlagen, Ihre eigene Testfallklasse zu erstellen und setUp() -Methode zu verwenden, um Fremdschlüssel zu aktivieren.

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