当mongodb驱动程序无法连接时,我的mocha测试不存在(因为db例如离线)。
如何释放资源以使测试退出?客户端为空,因此我无法使用client.close()
。
我知道有--exit
摩卡标志,但我想关闭mongo驱动程序。
谢谢!
我的代码就像:
static async create(
dbName: string = db_name,
url: string = db_url,
): Promise<MongoDbContext> {
return new Promise<MongoDbContext>((resolve, reject) => {
mongodb.MongoClient.connect(
url,
{
keepAlive: 1000,
connectTimeoutMS: 1000,
socketTimeoutMS: 1000,
},
function(err, client) {
if (err) {
console.log(err)
return reject(err)
}
console.log('Connected successfully to server')
resolve(new MongoDbContext(client, dbName))
},
)
})
}
规范
it('should throw if error occures', async function() {
this.timeout(1000)
try {
mongo = await MongoDbContext.create('artifact_test')
} catch (error) {
return
}
fail('there was no exception')
})
更新 现在它在特定时间后终止,但没有弄清楚哪个选项对它有影响,因为在示例中一切都设置为1000毫秒,但它仍然更长
答案 0 :(得分:0)
客户端正在尝试重新连接,因此您需要设置以下配置属性:
{
autoReconnect: false
}