我得到了SyntaxError: Unexpected token import
当使用我的自定义类扩展时NodeEnvironment
。当不使用自定义测试环境时,现代 JavaScript - ES 模块等可以正常工作。
我正在使用节点8.11.1
和纱线1.6.0
.
这是完整的错误:
$ jest --no-cache
FAIL __tests__/math.js
● Test suite failed to run
/home/user/workspace/web/jest-custom-environment-no-import/__tests__/_helpers_/environments/integration.js:1
(function (exports, require, module, __filename, __dirname) { import NodeEnvironment from 'jest-environment-node';
^^^^^^
SyntaxError: Unexpected token import
at node_modules/jest-runner/build/run_test.js:31:29
这是我的.babelrc
:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
},
"shippedProposals": true
}
]
]
}
And the jest
我的一部分package.json
:
"jest": {
"testEnvironment": "./__tests__/_helpers_/environments/integration.js",
"testPathIgnorePatterns": ["/node_modules/", "/_helpers_/"],
"verbose": true
}
自定义环境:
import NodeEnvironment from 'jest-environment-node';
export default class IntegrationEnvironment extends NodeEnvironment {
async setup() {
await super.setup();
}
async teardown() {
await super.teardown();
}
runScript(script) {
return super.runScript(script);
}
}
我还创建了一个GitHub 仓库 https://github.com/j-klassen/jest-custom-environment-no-import这说明了这个问题。