これに遭遇した人にとって、問題は実際にはdb.js
から来ていました。 、具体的には最後の行:
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]);
もちろん、これは非同期であり、テストは独自のknex関数を実行しようとする前にこのファイルをインポートしていたため、ロックが発生していました。テスト中にこれを実行するのをブロックする句を追加することで、これを回避しました:
if(process.env.NODE_ENV != 'test') {
knex.migrate.latest([config])
}
次に、process.env.NODE_ENV='test'
を追加して、テスト環境を作成できます。 各スペックファイルに追加するか、 npm envtest
をインストールします。 モジュール。