【发布时间】:2017-11-12 14:08:25
【问题描述】:
我知道这已被问过无数次,但尽管遵循了所有 SO 解决方案和建议,但我无法解决问题。
几天前我知道了jest,并试图亲自动手。 DZone 上提到了一个很好的教程,关于使用 jest 测试反应组件。但是,当我尝试测试 starter 目录中的一个组件时,我遇到了这个问题,
SyntaxError: 意外的令牌导入
在 ScriptTransformer._transformAndBuildScript (../../../../../../usr/local/lib/node_modules/jest/node_modules/jest-runtime/build/ScriptTransformer.js:289: 17) 在 emitTwo (events.js:106:13)
按照SO post 中的建议,我已经安装了babel-preset-react 并将其添加到我的webpack.config.js 文件中。
这是我的webpack.config.js 文件,我的package.json 文件,.babelrc 文件
请注意,我已经浏览了这些 SO 帖子中发布的解决方案 -
这从我的.babelrc 和webpack 文件的变化中可能很明显
但我无法解决我遇到的问题。如果我在这里遗漏了什么,请告诉我,因为我花了 3-4 个小时在 SO 和其他论坛上搜索任何答案,但我似乎找不到它。
更新 1:这是我的测试文件 - Clock.test.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import Clock from 'Clock';
describe('Clock',()=>{
it("renders without crashing",()=>{
const div = document.createElement('div');
ReactDOM.render(<Clock/>,div);
});
});
【问题讨论】:
-
你能链接到测试文件吗,我怀疑你没有在违反规范的模块的顶层导入。您可以通过在 babel 中将松散属性设置为 true 来更改它。
-
@AaronF 更新了有问题的测试文件。
-
您的配置非常混乱。 1. 修复你的 package.json 依赖...去掉那些预设的东西,package.json 不是你的加载器的配置!用 Babel 版本替换它(你甚至不需要那个 npm 包)。 2. 去掉 webpack 配置中的查询!
-
我应该做些什么改变。如果您可以在答案中添加这些内容,那就太好了。谢谢:)
标签: javascript reactjs jestjs babel-jest