javascript - Sails.js Mocha 超时错误

标签 javascript node.js sails.js mocha.js

提前感谢您的帮助。

我有一个 Sails.Js (v11) 应用程序,我正在使用 Mocha 进行单元测试。目前,我每次尝试运行测试时都会遇到超时错误:

Error: timeout of 30000ms exceeded. Ensure the done() callback is being called in this test.

我在我的测试 Bootstrap 文件上设置了 20000 的超时,在 mocha 上设置了 30 秒。

引导文件:

var Sails = require('sails');

 // Global before hook
  before(function (done) {
    this.timeout(20000);
    // Lift Sails with test database
    Sails.lift({
      log: {
        /**
         * for debugging:
         * level: 'error'
         */
         level: 'error'
        /**
         * for running full tests without sails console errors
         * level: 'silent'
         */
        //level: 'silent'
      },
      hooks: {
        grunt: false
      },
      models: {
        connection: 'test',
        migration: 'drop'
      }
    }, function(err, server) {
      sails = server;
      if (err)
        return done(err);
        done(err, sails);
    });
  });

  // Global after hook
  after(function (done) {
    console.log(); // Skip a line before displaying Sails lowering logs
    Sails.lower(done);
  });

Mocha :

--timeout 30s

知道如何解决这个错误吗?

最佳答案

尝试从您的 global after hook 中删除所有 done() 函数调用。如果函数不是 异步 Hook ,则不需要 done() 调用。

   // Global after hook
  after(function () {
    console.log(); // Skip a line before displaying Sails lowering logs
    Sails.lower();
  });

编辑

我想我明白了你的问题。您需要执行 sails.lower(); 而不是 Sails.lower();(注意大写字母)

这是另一个例子:

before(function (done) {
    var SailsApp = require('sails').Sails;
    var Sails = new SailsApp();
    Sails.lift({
    }, function (err, sails) {
        done(err, sails);
    });
});
describe.skip("dummy test", function () {
        it('is a pending dummy test case', function () {
        });
    });

after(function (done) { 
    sails.lower();
    done();
});

关于javascript - Sails.js Mocha 超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32318097/

相关文章:

javascript - 使用 CSRF 的 SailsJS View 层分离

javascript - NodeJS 如何在 Controller 中组织回调

javascript - 检查数组中是否存在某个项目并从该数组中删除该特定项目

javascript - 嵌入的一个值中的多行(discord.js)

javascript - 使用数据属性在 .find() 中添加变量

javascript - native 加密加密抛出 DOMException

node.js - 访问文件夹内的文件,该文件夹位于 sails js(node js 框架)的 config 文件夹内

java - 检查java/js/jsp中某个ip的端口是否打开

json - 将 Json 转换为 Xlsx 文件

javascript - 防止 JavaScript/Node.js 中的 SQL 注入(inject)