【问题标题】:Cannot create custom TestEnvironment in Jest无法在 Jest 中创建自定义 TestEnvironment
【发布时间】:2018-12-23 20:15:14
【问题描述】:

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

确定要运行的测试套件...
失败验收测试/mongo.test.js
● 测试套件无法运行

TypeError: TestEnvironment 不是构造函数

at ../node_modules/jest-runner/build/run_test.js:88:25

我的测试完全是空的,我的 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);
  }
}

感谢任何帮助!

【问题讨论】:

    标签: javascript node.js testing jestjs


    【解决方案1】:

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

    我必须导出CustomTestEnvironment

    const NodeEnvironment = require('jest-environment-node');
    
    class CustomEnvironment extends NodeEnvironment {
      ...
    }
    
    module.exports = CustomEnvironment
    

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

    【讨论】:

    • 我有同样的问题,但我确实导出了。你的配置文件是什么样的?
    • 找到了:你必须在testEnvironmenttestEnvironment处设置导出jest.config.js中的类的文件的路径
    • 我也遇到了文件命名约定的问题。如果您没有在路径的一部分中包含相对目录,例如--test-environment env.js,它将假定您正在尝试从node_modules 导入某些内容。导入文件的正确方法是说--test-environment ./env.js
    • 我发现在我的jest.config.js 中我必须这样做:testEnvironment: '<rootDir>/../jest/environment.js', 我的rootDirsrc 关闭项目根目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多