3

我正在从node-config docs实施选项 2 。

这运行良好,并且我的全局配置变量是在测试环境之外运行时定义的。

但是,当我使用vue-cliJest 单元测试(例如vue-cli-service test:unit)运行此程序时,我收到此错误:

  ● Test suite failed to run

    ReferenceError: APP_CONFIG is not defined
// vue.config.js
...
 configureWebpack: {
    plugins: [
      new ConfigWebpackPlugin('APP_CONFIG')
    ]
  },
...

有什么好的方法可以解决这个问题?是因为 Jest 在node-config完成所有全局变量及其值的切换之前就开始执行 JS 文件吗?

4

1 回答 1

3

Jest 不运行 Webpack,因此您必须手动设置测试的配置。作为一种解决方法,您可以将配置声明为 Jest global

要声明全局,请将globals属性添加到jest.config.js. 子属性键将是config-webpack' 名称空间(APP_CONFIG在您的情况下),值将是来自以下位置的所需配置 JSON 文件config/

// jest.config.js
module.exports = {
  globals: {
    APP_CONFIG: require('./config/default.json')
  }
}
于 2019-07-18T07:49:57.790 回答