Für alle, die darüber stolpern, kam das Problem tatsächlich von db.js
, insbesondere die letzte Zeile:
const config = require('../knexfile.js');
const env = process.env.NODE_ENV || 'development';
const knex = require("knex")(config[env]);
module.exports = knex;
knex.migrate.latest([config]);
Dies ist natürlich asynchron, und die Tests importierten diese Datei, bevor sie versuchten, ihre eigenen Knex-Funktionen auszuführen, was die Sperre verursachte. Ich habe dies umgangen, indem ich eine Klausel hinzugefügt habe, um diese Ausführung beim Testen zu blockieren:
if(process.env.NODE_ENV != 'test') {
knex.migrate.latest([config])
}
Sie können dann eine Testumgebung erstellen, indem Sie process.env.NODE_ENV='test'
hinzufügen zu jeder Spezifikationsdatei hinzufügen oder den npm env test
installieren Modul.