无法在Jest中创建自定义TestEnvironment

Alt*_*yyr 5 javascript testing node.js jestjs

我正在尝试使用Jest创建自定义测试环境,如其官方文档中所述,
不幸的是我收到以下错误:

确定要运行的测试套件...
FAIL acceptancetests/mongo.test.js
●测试套件无法运行

TypeError:TestEnvironment不是构造函数

at ../node_modules/jest-runner/build/run_test.js:88:25
Run Code Online (Sandbox Code Playgroud)

我的测试完全是空的,我的CustomTestEnvironment只调用超类.我是最新的Jest版本(24.3.1)

我认为这很奇怪,错误是在Jest库中引发的.

这是我的test-environment.js:

const NodeEnvironment = require('jest-environment-node');

class CustomEnvironment extends NodeEnvironment {
  constructor(config) {
    super(config);
  }

  async setup() {
    await super.setup();
  }

  async teardown() {
    await super.teardown();
  }

  runScript(script) {
    return super.runScript(script);
  }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

Alt*_*yyr 6

好的,这是一个愚蠢的问题,我找到了解决方案.

我不得不出口 CustomTestEnvironment

const NodeEnvironment = require('jest-environment-node');

class CustomEnvironment extends NodeEnvironment {
  ...
}

module.exports = CustomEnvironment
Run Code Online (Sandbox Code Playgroud)

我不知道为什么指南不包括那一行:(

  • 找到它:你必须在``testEnvironment``的jest.config.js中设置导出类的文件的路径 (2认同)
  • 我发现在我的 `jest.config.js` 中我必须这样做: `testEnvironment: '<rootDir>/../jest/environment.js',` 我的 `rootDir` 是项目中的 `src`根。 (2认同)