摩卡测试超时

时间:2019-01-18 19:57:31

标签: javascript node.js mocha sinon chai

我有一个单元测试来注册功能。我返回一个承诺,但收到一个错误:

SELECT 
   *
FROM [employeeName] Where dept In (Select dept From #tbl)

我尝试使用done()函数,异步等待,检查Promise拒绝-没有结果。

我的测试代码如下:

Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

已测试控制器的代码:

https://github.com/elszczepano/FindMates-API/blob/master/src/controllers/authController.js

1 个答案:

答案 0 :(得分:0)

我解决了! 第一: 我必须将package.json中的超时设置为10000毫秒:

"test": "nyc mocha --require @babel/register --require @babel/polyfill tests/unit/**/*.test.js --timeout 10000"

第二: 我必须与MongoDB数据库建立连接(当然还要在测试后断开连接)。

before(done =>{
    mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true });
    mongoose.set('useCreateIndex', true);
    mongoose.set('useFindAndModify', false);
    done();
});
after(done => {
    mongoose.disconnect();
    done();
});