create-react-app SyntaxError:运行测试时出现意外的标识符

时间:2018-12-11 20:18:53

标签: reactjs redux react-redux jestjs

我使用create-react-app创建了我的应用程序,并安装了redux,一切都按预期运行。

在创建测试时,我遇到了一个使用开放层但在运行测试时使用命令行更正了该问题的组件的一些问题:

npm测试---transformIgnorePatterns'node_modules /(?!(ol)/)'--setupFiles'jest-canvas-mock'jest --no-cache

包含对OpenLayers的引用的测试现在可以通过所有测试,但是我有另一个组件可以分别使用react-bootstrat / es / Tab和Tabs中的Tab和Tabs。

对该组件的简单测试如下:

import React from 'react';
import ReactDOM from 'react-dom';
import SideMenu from '../../side-menu/side-menu';

it ('should render without crashing', () => {
    const div = document.createElement ('div');
    ReactDOM.render (<SideMenu/>, div);
    ReactDOM.unmountComponentAtNode(div);
});

运行测试命令时,这是我的项目中唯一失败的测试,并出现以下错误:

({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import _extends from "@babel/runtime-corejs2/helpers/esm/extends";
                                                                                                    ^^^^^^^^

    SyntaxError: Unexpected identifier

      1 | import React, { Component } from 'react';
    > 2 | import Tabs from "react-bootstrap/es/Tabs";
        | ^
      3 | import Tab from "react-bootstrap/es/Tab";
      4 | import AvailableLayersMenu from '../available-layers-window/available-layers-menu-tree';
      5 | 

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
      at Object.<anonymous> (src/side-menu/side-menu.js:2:1)

我的.babelrc文件如下:

{
  "presets": [
    "env",
    "react",
    ["es2015", {"modules":  true}],
    "stage-1"
  ]
}

我不确定这是怎么回事,已经进行了整整2天,最近的测试没有进展。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好吧,在无数小时的浪费之后,我的同事找到了解决方案:

npm测试---transformIgnorePatterns'node_modules /(?!(ol | react-bootstrap | @babel)/)'--setupFiles'jest-canvas-mock'jest --no-cache