我正在进行摩卡测试的项目,使用knex池。
我的问题是,当测试结束时,它一直在等待直到knex池被排出,并且需要额外的几秒钟(大约5-10秒)才能完成摩卡的运行。
代码示例:
knex初始化:
const Knex = require('knex');
const knex = new Knex({
client: 'pg',
pool: { min: 1, max: 10 },
connection: {},
searchPath: 'knex,public',
// debug: true,
});摩卡测试排水沟连接:
after((done) => {
knex.destroy().then(done);
})我想要做到的是,这两者都是:
有什么建议吗?
发布于 2017-10-05 08:10:30
这个功能在摩卡的时候发生了变化。
2879:默认情况下,一旦所有测试完成,Mocha将不再强制进程退出。这意味着任何测试代码(或正在测试的代码)。 在Mocha中运行时,通常会防止节点退出。提供--退出标志以恢复到pre-v4.0.0行为(@ScottFreeCode,@boneskull)
https://github.com/mochajs/mocha/blob/master/CHANGELOG.md
如果上述情况没有帮助,您可以始终调用process.exit(0) in done,以强制终止进程并成功退出代码。
AFAIK在knex一侧没有武力选择杀死连接。
发布于 2019-05-14 09:20:09
这将有助于您的连接从排水。
const config = {
client: "pg",
connection: {
host: hostname,
user: username,
password: password,
database: datbase
},
pool: {
min: 0,
max: 10
},
acquireConnectionTimeout: 1000
}
var Knex = require('knex')
this.functioname = () => {
var output = {}
return new Promise(function (resolve) {
var knex = new Knex(config)
knex(tablename)
.select()
.then((result) => {
if (result.length > 0) {
output.error = false
output.result = result
} else {
output.error = true
}
resolve(output)
})
.catch((err) => {
err.error = true
resolve(err)
})
.finally(() => {
knex.destroy()
})
})
}https://stackoverflow.com/questions/46572132
复制相似问题