Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called;
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called;
已尝试使用超时和 done() 函数来解决此问题,但无法正常显示错误:超时超过 2000 毫秒。对于异步测试和挂钩,确保 "done()" 被调用;错误。
控制器
var plan_details = require('../../models/plan_details');
module.exports = function () {
return {
getPlansList: function (request, callback) {
plan_details.find().sort({ createdAt: -1 }).exec().then((result) => {
log.info("Getting All Plan Details");
callback({ status: 200, success: true, result: result });
}).catch(err => {
log.error("Getting error while getting all plans");
log.error(err);
callback({ status: 400, success: false, message: "Unable to
Process your Request" });
});
}
}}
测试用例
var expect = require("chai").expect;
var request = require("request");
var PlanMgmnt = require('../routes/PlanManagement/PlanManagement')();
describe("--Plan Management API", function () {
describe("--Add Plan API", function () {
it("--returns status 200", function (done) {
PlanMgmnt.getPlansList({}, function(res){
console.log(res);
});
// done();
});
});});
它不在 console.log 中打印 res。
you can set the timeout for each suite or each test
describe('suite descripion', function(){
this.timeout(15000);
it('test description', function(done){
this.timeout(15000);
});
});
done()
应该放在里面,如下所示:
describe("--Add Plan API", function () {
it("--returns status 200", function (done) {
PlanMgmnt.getPlansList({}, function(res){
console.log(res);
done();
});
});
});
希望对您有所帮助
已找到解决方案,问题是由于 MongoDB 连接,单元测试用例未获得 MongoDB 连接,因为单元测试用例无法执行 mongo函数.
为了解决这个问题,添加了 helper.js 文件,在此文件中添加了 mongoose 连接代码,在测试命令中使用了 helper.js 文件
"test": "mocha test --require helper.js".
或者也可以使用 mongo-unit 包。
参考资料:https://www.toptal.com/nodejs/integration-and-e2e-tests-nodejs-mongodb
已尝试使用超时和 done() 函数来解决此问题,但无法正常显示错误:超时超过 2000 毫秒。对于异步测试和挂钩,确保 "done()" 被调用;错误。
控制器
var plan_details = require('../../models/plan_details');
module.exports = function () {
return {
getPlansList: function (request, callback) {
plan_details.find().sort({ createdAt: -1 }).exec().then((result) => {
log.info("Getting All Plan Details");
callback({ status: 200, success: true, result: result });
}).catch(err => {
log.error("Getting error while getting all plans");
log.error(err);
callback({ status: 400, success: false, message: "Unable to
Process your Request" });
});
}
}}
测试用例
var expect = require("chai").expect;
var request = require("request");
var PlanMgmnt = require('../routes/PlanManagement/PlanManagement')();
describe("--Plan Management API", function () {
describe("--Add Plan API", function () {
it("--returns status 200", function (done) {
PlanMgmnt.getPlansList({}, function(res){
console.log(res);
});
// done();
});
});});
它不在 console.log 中打印 res。
you can set the timeout for each suite or each test
describe('suite descripion', function(){
this.timeout(15000);
it('test description', function(done){
this.timeout(15000);
});
});
done()
应该放在里面,如下所示:
describe("--Add Plan API", function () {
it("--returns status 200", function (done) {
PlanMgmnt.getPlansList({}, function(res){
console.log(res);
done();
});
});
});
希望对您有所帮助
已找到解决方案,问题是由于 MongoDB 连接,单元测试用例未获得 MongoDB 连接,因为单元测试用例无法执行 mongo函数.
为了解决这个问题,添加了 helper.js 文件,在此文件中添加了 mongoose 连接代码,在测试命令中使用了 helper.js 文件 "test": "mocha test --require helper.js".
或者也可以使用 mongo-unit 包。
参考资料:https://www.toptal.com/nodejs/integration-and-e2e-tests-nodejs-mongodb