Đối với bất kỳ ai tình cờ gặp phải vấn đề này, vấn đề thực sự đến từ db.js
, cụ thể là dòng cuối cùng:
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]);
Tất nhiên điều này là không đồng bộ và các bài kiểm tra đã nhập tệp này trước khi cố gắng chạy các chức năng quỳ của riêng chúng, gây ra khóa. Tôi đã giải quyết vấn đề này bằng cách thêm một mệnh đề để chặn điều này đang chạy trong khi thử nghiệm:
if(process.env.NODE_ENV != 'test') {
knex.migrate.latest([config])
}
Sau đó, bạn có thể tạo môi trường thử nghiệm bằng cách thêm process.env.NODE_ENV='test'
cho từng tệp đặc tả hoặc bằng cách cài đặt kiểm tra npm env
mô-đun.