ElementUI 测试抛出 ReferenceError:_Message 未定义

马克西姆·费多托夫

关于 ElementUI 的错误报告

我正在使用 ElementUI 组件的按需加载。我已正确按照说明进行操作,并且在运行应用程序时运行良好。

当我尝试使用 Jest 和 Vue 测试工具进行测试时,问题就出现了。似乎没有找到我要导入的任何组件,因此在运行测试时出现此错误:

ReferenceError: _Message is not defined

对于我的测试涉及的任何其他组件,我都遇到了相同的错误。

在我上面提到的错误报告中,有人建议我的 babel 配置没有在我的测试环境中应用?或者它与我的 Jest 配置有关。我尝试了各种方法来解决这个问题:

  1. 进行手动模拟
  2. 监视组件
  3. 在我的测试中导入整个 ElementUI 包
  4. 更新 Jest 配置

似乎没有任何效果,我不知道出了什么问题......

配置文件

module.exports = {
  presets: [
    '@vue/app',
  ],
  plugins: [
    [
      'component',
      {
        libraryName: 'element-ui',
        styleLibraryName: 'theme-chalk',
      },
    ],
  ],
};

is.config.js

module.exports = {
  // roots: ['<rootDir>/src/', '<rootDir>/tests/'],
  moduleFileExtensions: [
    'js',
    'jsx',
    'json',
    'vue',
  ],
  transform: {
    '^.+\\.vue$': 'vue-jest',
    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
    '^.+\\.jsx?$': 'babel-jest',
  },
  transformIgnorePatterns: [
    '/node_modules/(?!element-ui)',
  ],
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1',
    '^.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
  },
  snapshotSerializers: [
    'jest-serializer-vue',
  ],
  testMatch: [
    '**/tests/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)',
  ],
  testURL: 'http://localhost/',
  watchPlugins: [
    'jest-watch-typeahead/filename',
    'jest-watch-typeahead/testname',
  ],
  collectCoverage: true,
  coverageReporters: ['lcov', 'text-summary'],
};
贝托

我在这里给你几个建议:

在 jest.config.js 中更改此设置

module.exports = {
  moduleFileExtensions: [
    'js',
    'jsx',
    'json',
    'vue',
  ],
  transform: {
    '^.+\\.vue$': 'vue-jest',
    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
    '^.+\\.(js|jsx)?$': 'babel-jest'
  },
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1',
    '^.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
  },
  snapshotSerializers: [
    'jest-serializer-vue',
  ],
  testMatch: [
    '**/tests/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)',
  ],
  testURL: 'http://localhost/',
  watchPlugins: [
    'jest-watch-typeahead/filename',
    'jest-watch-typeahead/testname',
  ],
  collectCoverage: true,
  coverageReporters: ['lcov', 'text-summary'],
};

这在 babel.config.js 中

module.exports = {
  presets: [
    '@vue/app',
  ],
  plugins: [
    [
      'component',
      {
        libraryName: 'element-ui',
        styleLibraryName: 'theme-chalk',
      },
    ],
  ],
  "env": { "test": { "plugins": ["transform-es2015-modules-commonjs", "dynamic-import-node"] } }
};

我也相信@babel/plugin-transform-modules-commonjs纱线中需要它。让我知道这个是否奏效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ReferenceError:未定义测试

来自分类Dev

Redux测试-ReferenceError:未定义localStorage

来自分类常见问题

Gulp-autoprefixer抛出ReferenceError:未定义承诺

来自分类Dev

在Karma测试中,未定义ReferenceError:describe

来自分类Dev

未捕获的ReferenceError:未定义测试(函数)

来自分类Dev

ReferenceError:未定义文档Jest React测试库

来自分类Dev

为什么会出现“ ReferenceError:未定义测试”

来自分类Dev

ReferenceError:未定义$

来自分类Dev

ReferenceError:未定义$

来自分类Dev

“ message”:“未捕获的ReferenceError:未定义myFunction”?

来自分类Dev

初始化程序抛出错误:未捕获ReferenceError:模块未定义

来自分类Dev

流星mongo抛出ReferenceError:使用NumberLong时未定义NumberLong错误

来自分类Dev

ReferenceError:未定义$或未捕获ReferenceError:未定义$

来自分类Dev

Javascript抛出未定义

来自分类Dev

抛出未定义变量

来自分类Dev

ReferenceError:未定义printStackTrace

来自分类Dev

ReferenceError:未定义MouseEvent

来自分类Dev

ReferenceError:未定义解析

来自分类Dev

ReferenceError:电子未定义

来自分类Dev

ReferenceError:玉未定义

来自分类Dev

ReferenceError:未定义爸爸

来自分类Dev

ReferenceError:未定义DartObject

来自分类Dev

ReferenceError:未定义TextEncoder

来自分类Dev

ReferenceError:需求未定义

来自分类Dev

ReferenceError:未定义角度

来自分类Dev

ReferenceError:未定义$ state

来自分类Dev

ReferenceError:错误未定义

来自分类Dev

ReferenceError:未定义sass

来自分类Dev

ReferenceError:未定义elgg