【问题标题】:SyntaxError: Unexpected reserved word on running mocha with enzymeSyntaxError:使用酶运行摩卡时出现意外的保留字
【发布时间】:2016-10-07 08:51:57
【问题描述】:

关于使用 mocha 进行酶测试。我收到错误

(function (exports, require, module, __filename, __dirname) { import React fro ^^^^^^

SyntaxError: 意外的保留字

我的测试文件中有以下给出的测试脚本

import React from 'react';
import { assert } from 'chai';
import { render } from 'enzyme';
import Book from '../src/Book';

describe("Book", () => {
it("render text", () => {
const wrapper = render(<Book author="Dan Abramov" title="Redux and ReactJS" />);

assert.equal(wrapper.text(), 'Redux and ReactJS by Dan Abramov');
});
});

我尝试将 import 替换为 require,但没有成功。如果有人伸出援助之手来解决这个问题,那就太好了。

编辑 我在下面包含了 package.json 文件,

{
"name": "test-client",
"version": "0.0.1",
"description": "test companies client.",
"repository": "https://github.com/Test/test-client",
"main": "js/app.js",
"directories": {
"test": "test"
},
"scripts": {
"test": "mocha"
},

"dependencies": {
"classnames": "2.2.*",
"clone": "^1.0.2",
"es5-shim": "4.1.*",
"es6-object-assign": "1.0.*",
"es6-promise": "3.0.*",
"flux": "^2.1.1",
"font-awesome": "^4.5.0",
"form-data": "^1.0.0-rc3",
"hashids": "^1.0.2",
"howler": "^1.1.29",
"isomorphic-fetch": "^2.2.1",
"js-cookie": "^2.1.0",
"json3": "3.3.*",
"keymirror": "0.1.*",
"normalize.css": "^4.0.0",
"react": "^15.0.1",
"react-addons-create-fragment": "^15.0.1",
"react-dnd": "^2.1.4",
"react-dnd-html5-backend": "^2.1.2",
"react-dom": "^15.0.1",
"react-infinite": "^0.9.2",
"react-paginate": "^1.0.4",
"react-tooltip": "^2.0.0",
"socket.io-client": "1.3.*",
"twemoji": "^2.0.5",
"unorm": "^1.4.1"
},
"devDependencies": {
"browserify": "^6.2.0",
"catw": "^1.0.1",
"dockerode": "^2.0.4",
"dotenv": "^2.0.0",
"envify": "^3.4.0",
"gulp-awspublish": "^3.0.2",
"less": "^2.6.1",
"reactify": "^0.15.2",
"watchify": "^3.4.0"
},
"browserify": {
"transform": [
  "reactify",
  "envify"
]
},
"scripts": {
"start-css": "catw -c 'lessc -' 'css/src/*.less' -o css/bundle.css -v",
"start-js": "watchify -o js/bundle.js -v -d js/app.js",
"start": "npm run start-css & npm run start-js"
},
"author": "Test"
}

【问题讨论】:

  • 您是否已经有可以运行 ES2015 代码的设置?
  • 你有 .babelrc 吗? mocha 会自动包含这个来设置 env es2015
  • @robertklep 没有。但我已经尝试过这个airbnb.io/enzyme/docs/installation/react-15.html
  • @MichaelRasoahaingo 除了 mocha 设置,我什么都没做。我将使用我的 package.json 文件更新问题。

标签: reactjs mocha.js enzyme


【解决方案1】:

您的测试使用 ES2015,为此您需要像 Babel 这样的转译器。

要使用 Mocha,您首先需要安装一些软件包:

$ npm install --save-dev babel-core babel-preset-es2015 babel-preset-react

接下来,将以下内容添加到您的package.json

"babel": {
  "presets": [ "es2015", "react" ]
}

或者,如果您没有package.json,请在工作目录中创建一个名为.babelrc 的文件,其中包含以下内容:

{
  "presets": [ "es2015", "react" ]
}

最后,告诉 Mocha 使用 Babel 转译器:

$ mocha --compilers js:babel-core/register test.js

【讨论】:

  • 即使在那之后我也得到了相同的错误响应。
  • 安装后 package.json 文件自动更新为以下脚本 "babel-cli": "^6.9.0", "babel-core": "^6.9.1 ", "babel-preset-es2015": "^6.9.0", "babel-preset-react": "^6.5.0",
  • @muneermuhammed 由于--save-dev 选项,预计package.json 会得到更新。尽管如此,有了这些说明,它应该起作用(它对我有用)。您使用的是哪个版本的 Node?​​span>
  • 节点版本为v0.10.33
  • @muneermuhammed 我会认真建议升级,我猜 0.10 太旧了。
猜你喜欢
  • 2023-03-28
  • 2022-06-10
  • 2016-09-19
  • 2021-10-03
  • 2022-10-24
  • 2017-06-09
  • 2016-02-16
  • 1970-01-01
  • 2013-04-18
相关资源
最近更新 更多