我们正在搭建一个NodeJS框架MidwayJS,我们推荐用户使用Jest来做测试用例。我们对Jest Env进行了这样的修改。
'use strict';
const NodeEnvironment = require('jest-environment-node');
/* eslint-disable no-useless-constructor */
class JestEnvironment extends NodeEnvironment {
constructor(config) {
super(config);
}
async setup() {
require('ts-node/register');
this.global.process.env.MIDWAY_TS_MODE = 'true';
this.global.process.env.MIDWAY_JEST_MODE = 'true';
this.global.setTimeout(3000)
await super.setup();
}
async teardown() {
await super.teardown();
}
runScript(script) {
return super.runScript(script);
}
}
module.exports = JestEnvironment;
有了上面的配置,一切都很顺利,但是我们遇到了一个问题。
有些用户创建了一个巨大的项目目录,而我们的框架会在应用程序启动前扫描整个目录,当运行测试用例时也是如此,这使得它在某些情况下需要花费超过3000ms的时间--Jest将默认的async回调调用时间设置为3000ms,所以如果扫描没有在3000ms内完成,测试就会崩溃。
我们通过使用jest.setup.js中的一行:jest.setTimeout(30000),很容易地解决了这个问题,但是现在我们想在第一个文件中解决这个问题,我没有找到修改设置配置的方法。
如果你能帮我做出来,我会非常感激。