sql >> Database teknologi >  >> RDS >> PostgreSQL

Mokka-testning af PostgreSQL med Knex giver mig en MigrationLocked-fejl

For alle, der falder over dette, kom problemet faktisk fra db.js , specifikt den sidste linje:

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]);

Dette er selvfølgelig asynkront, og testene importerede denne fil, før de forsøgte at køre deres egne knex-funktioner, hvilket forårsagede låsen. Jeg kom uden om dette ved at tilføje en klausul for at blokere, at dette kører under test:

if(process.env.NODE_ENV != 'test') {
   knex.migrate.latest([config])
}

Du kan derefter oprette et testmiljø ved at tilføje process.env.NODE_ENV='test' til hver spec-fil eller ved at installere npm env-testen modul.



  1. Find ud af, hvor MySQL er installeret på Mac OS X

  2. Enkel måde at nulstille Django PostgreSQL-databasen?

  3. ReplicationManager kastede en undtagelse ved at åbne en forbindelse

  4. Sætter output fra Postgres \i input til en fil?