【问题标题】:when i run enzyme example, i got "SyntaxError: /Users/a2014/Desktop/draghtml/test/test.js: Unexpected token (58:26)"当我运行酶示例时,我得到“SyntaxError: /Users/a2014/Desktop/draghtml/test/test.js: Unexpected token (58:26)”
【发布时间】:2017-08-12 16:15:52
【问题描述】:

这是我的测试代码

import React from 'react';
import { expect } from 'chai';
import { mount, shallow } from 'enzyme';
import Welcome from '../script/src/entry';

describe('<Welcome />', () => {
  it('calls componentDidMount', () => {
    const wrapper = mount(<Welcome />);
    expect(Welcome.prototype.componentDidMount.calledOnce).to.equal(true);
  });
});
这是我的 package.json

  "scripts": {
    "cover": "istanbul cover _mocha -- --delay",
    "test": "mocha --compilers js:babel-core/register --require ./test/test.js",
    "dev": "webpack"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "chai": "^4.1.1",
    "enzyme": "^2.9.1",
    "html-webpack-plugin": "^2.30.1",
    "isparta-loader": "^2.0.0",
    "istanbul": "^0.4.5",
    "jsx-loader": "^0.13.2",
    "karma": "^1.7.0",
    "karma-chrome-launcher": "^2.2.0",
    "karma-coverage": "^1.1.1",
    "karma-firefox-launcher": "^1.0.1",
    "karma-mocha": "^1.3.0",
    "karma-phantomjs-launcher": "^1.0.4",
    "karma-spec-reporter": "0.0.31",
    "karma-webpack": "^2.0.4",
    "mocha": "^3.5.0",
    "phantomjs-polyfill": "0.0.2",
    "react-addons-test-utils": "^15.6.0",
    "react-test-renderer": "^15.6.1",
    "should": "^11.2.1",
    "webpack": "^3.4.1"
  },
  "dependencies": {
    "babel-runtime": "^6.25.0",
    "react": "^15.6.1",
    "react-dom": "^15.6.1"
  }

当我运行“npm run test”时,出现错误,如何解决?

SyntaxError: /Users/a2014/Desktop/draghtml/test/test.js: Unexpected token (58:26)

58: const wrapper = mount(&lt;Welcome /&gt;);

好像没有解决

【问题讨论】:

    标签: javascript reactjs mocha.js enzyme


    【解决方案1】:

    你需要使用带有正确预设的 Babel 来解析你的组件的 JSX 语法,NodeJS 不支持,事件在最新版本中,以后可能不支持了。

    一种选择是安装React preset 并将其包含在.babelrc 文件中:

    {
      "presets": ["react"]
    }
    

    【讨论】:

    • 我像这样创建 .babelrc { "presets": ["react", "stage-0", "es2015"] }, and "npm run test", 它得到一个错误 "disscribe is未定义”,但是我安装了macha,如何解决它
    • 您安装了这些预设吗?你需要做:npm i --save-dev babel-preset-react babel-preset-stage-0 babel-preset-es2015。然后使用package.jsonnpm test 中的命令运行 mocha。如果您在某处(例如 GitHub)有示例,我可以看看
    • 您有几个错误:首先,从package.json 文件中的"test" 脚本中删除--require。然后将enzyme.mount( 更改为mount(。然后酶会抱怨没有加载文件。最后,您必须按照以下步骤操作:github.com/airbnb/enzyme/blob/master/docs/guides/…。我强烈推荐使用 jest 而不是 mocha,它会让你更容易用酶进行测试。
    猜你喜欢
    • 2016-03-19
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2019-12-18
    • 2012-09-21
    相关资源
    最近更新 更多