首页 > 解决方案 > 如何修改 NodeEnvironment 中的设置配置(来自 jest-environment-node)?

问题描述

我们正在构建一个 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 设置默认异步回调调用时间3000ms,所以如果扫描没有在 3000ms 内完成,测试就会崩溃。

我们通过在一行中使用 jest.setup.js 轻松解决了这个问题:jest.setTimeout(30000),但现在我们想在第一个显示的文件中解决它,我没有找到修改设置配置的方法在里面。

如果您能帮我解决这个问题,我将不胜感激。

标签: node.jsjestjs

解决方案


推荐阅读