【发布时间】:2020-12-19 01:38:28
【问题描述】:
如果我使用 ES6 中的 import/export,那么我所有的 Jest 测试都会失败并出现错误:
意外的保留字
我将我的测试对象转换为使用老派IIFE 语法,突然我的测试通过了。或者,采用更简单的测试用例:
var Validation = require('../src/components/validation/validation'); // PASS
//import * as Validation from '../src/components/validation/validation' // FAIL
同样的错误。显然这里的导入/导出存在问题。仅仅为了让我的测试框架满意而使用 ES5 语法重写我的代码对我来说是不切实际的。
我有 babel-jest。我从 GitHub 问题中尝试了各种 suggestions。到目前为止还不行。
文件 package.json
"scripts": {
"start": "webpack-dev-server",
"test": "jest"
},
"jest": {
"testPathDirs": [
"__tests__"
],
"testPathIgnorePatterns": [
"/node_modules/"
],
"testFileExtensions": ["es6", "js"],
"moduleFileExtensions": ["js", "json", "es6"]
},
文件 babelrc
{
"presets": ["es2015", "react"],
"plugins": ["transform-decorators-legacy"]
}
有解决办法吗?
【问题讨论】:
-
this 有帮助吗?
-
@GeorgePompidou - 可能。我不确定该解决方案是否/如何适用于 babel-jest
-
这是一个在 package.json 或 .babelrc 中指定类似 "presets": ["es2015"] 的问题。毕竟,您正在使用 babel。
-
@GeorgePompidou - 在这种情况下,解决方案不起作用。我已经有一个包含 es2015 的 babelrc,react presets。标准的转译工作,在 gulp 内部。只是Jest框架处理不了。
-
这个问题是 5 年前的问题,但是 jest 对 ES 模块的支持是实验性的。
标签: ecmascript-6 jestjs babel-jest