2016-09-02 4 views
1

Ich führe mehrere Loopback-Tests über mocha durch (nennen wir sie test1.js, test2.js und test3.js).Zurücksetzen des Loopback-Speichers DB

Wenn ich selbständig laufe läuft alles gut. Wenn ich jedoch mocha anfordere, sie alle auszuführen, kollidieren Dinge, die im ersten Test im In-Memory-DB erstellt werden, mit Tests, die später durchgeführt werden (Test 2 oder 3).

Gibt es eine Möglichkeit sicherzustellen, dass wir jeden Test mit einer leeren DB starten? Etwas wie:

app.dataSources.db.reset() 

Vielen Dank!

UPDATE: Was ich getan habe: Ich schaute auf DataSource Code und festgestellt, dass Sie automigrate auf dem Speicher DB tun können.

before("wipe DB (if used with other tests)", function(done) { 
    app.dataSources.db.automigrate(function(err) { 
     done(err); 
    }); 
}); 

Antwort

3

Erhalten Sie einen Halt des db über app.dataSources.db und führen automigrate wie in:

before("wipe DB (if used with other tests)", function(done) { 
    app.dataSources.db.automigrate(function(err) { 
     done(err); 
    }); 
}); 

Beifall.

+0

Nicht funktioniert für mich mit mongodb –

1

Normalerweise sollten Sie nach jedem Test aufräumen.

können Sie hooks verwenden, wie afterEach

+0

Danke Yasei. Genau darauf habe ich jetzt zurückgegriffen, aber einige Tests erzeugen ein Chaos aus der Speicher-DB und es ist zweckmäßiger, einfach von vorne anzufangen. Prost. –

Verwandte Themen