Node.js 与猫鼬连接时,摩卡在执行后挂起
说话很便宜,给我看看代码 莱纳斯·托瓦尔德 使用Node.js 与猫鼬连接时,摩卡在执行后挂起,node.js,mongodb,mongoose,mocha.js,Node.js,Mongodb,Mongoose,Mocha.js,说话很便宜,给我看看代码 莱纳斯·托瓦尔德 使用mocha和supertest进行集成测试。这是密码 //app.js mongoose.Promise = global.Promise; mongoose.connect(config.mongoURL, error => { if (error) { throw error; } console.log('Connected to mongodb'); }); modules.export = app; /
mocha
和supertest
进行集成测试。这是密码
//app.js
mongoose.Promise = global.Promise;
mongoose.connect(config.mongoURL, error => {
if (error) {
throw error;
}
console.log('Connected to mongodb');
});
modules.export = app;
// test.js
it('returns 200', () => {
return supertest(app).get('/').expect(200);
});
基本上,测试运行后,输出“连接到mongodb”会记录日志(我只有3个测试,没有一个使用db),然后mocha挂起,我必须按住Ctrl+C。我可能错过了一些配置,但我看不到它
不用说,注释mongoose行(mongoose.connect(…)
)可以修复它
我遗漏了什么?测试完成后,您必须断开与数据库的连接。例如,这可以在
after
功能中完成
after((完成)=>{
应用程序关闭(()=>{
猫鼬。连接。关闭(完成);
});
});
如果不断开连接,您将得到您描述的症状。更简单的答案
after((done) => {
mongoose.connection.close(done);
});
这是有道理的,但是为什么我从来没有在教程中看到过呢?没有其他方法自动级联SIGTERM吗?