测试永远使用膝盖和摩卡



所以我正在使用带有 Node 的 Knex 模块来连接我的数据库,这很棒,可以满足我所需的一切。

但是,当我在摩卡中运行我的单元测试时,即使单元测试完成,该过程也会继续运行。

所以我看到其他人有类似的问题,它永远运行,他们的解决方案是使用 knex.destroy((。我试过这个,它适用于一个文件,但我运行我的单元测试,如 npm run test*,它将运行任何文件。因此,一旦第一次测试运行破坏,接下来的测试就会全部失败。

我只是想知道这是否是一个仍在运行的未解决的承诺的情况? 还是配置错误的膝盖?

我像这样配置膝盖..

'use strict';
const
config = require('../../config/config');
module.exports = require('knex')({
client: 'mysql',
connection: {
host: config.get('db.host'),
user: config.get('db.user'),
password: config.get('db.password'),
database: config.get('db.database'),
multipleStatements: true
},
pool: {
min: 0,
max: 5,
// debug: true
});

当我需要一个数据库项目时,我只需使用 db.insert( ... ( 等调用它。

感觉有点不对劲,我不需要获得 Knex 的实例?

希望有人能给我一些指示?

提前谢谢。 授予

我在膝盖0.15.2、pg7.4.3和摩卡5.2.0上遇到了同样的问题。按照建议在每种测试方法后用knex.destroy()解决了它:

let knex: Knex
beforeEach(async () => {
knex = Knex({
client: 'pg',
connection: config.postgres.connection_string,
debug: config.postgres.debug,
acquireConnectionTimeout: config.postgres.connection_timeout
})
})    
afterEach(async () => {
await knex.destroy()
})

最新更新