在node.js中需要摩卡测试文件会导致TypeError:describe不是函数

时间:2019-03-18 11:33:53

标签: javascript node.js mocha chai

我有一个包含某些测试的测试文件:

describe("tests", () => {
  before(async () => {
    //....
  });
  afterEach(async () => {
    // ...
  });
});

我想在我的node.js代码中要求该文件:

const test = require(resolve('server.test'));
console.log(test);

但由于以下错误而无法使用:

TypeError: describe is not a function

我试图从测试文件内部导出某些内容,如下所示:

// in the test file
module.exports.name = 11;

describe("tests", () => {
 // ....
});

// in node.js 
const name = require(resolve('server.test'));
const t = JSON.stringify(name);
console.log(t);

我仍然遇到相同的错误

1 个答案:

答案 0 :(得分:0)

我不确定为什么要在常规代码文件中require来测试文件,但是如果您真的想要,可以向其中添加一个describe函数global namespace object,以便在需要测试文件时存在:

if (global.describe === undefined) {  // if a global describe doesn't exist...
  global.describe = () => {};  // ...then define one
}
const test = require(resolve('server.test'));
console.log(test);