Reactjs 开玩笑&意外标记<;

Reactjs 开玩笑&意外标记<;,reactjs,jestjs,enzyme,Reactjs,Jestjs,Enzyme,我试图使用酶来测试反应成分,但即使是最基本的例子也无法开始 import React from 'react' import { shallow,render,mount,configure } from 'enzyme' import Adapter from 'enzyme-adapter-react-16'; import {LoginPage} from '../../../app/components/login/LoginPage' configure({ adapter: new

我试图使用酶来测试反应成分,但即使是最基本的例子也无法开始

import React from 'react'
import { shallow,render,mount,configure } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16';
import {LoginPage} from '../../../app/components/login/LoginPage'

configure({ adapter: new Adapter() });

test('should say hello',() => {
    const loginPage = shallow(<LoginPage />)
    expect(loginPage.contains('Hello').toBe(true))
})
从“React”导入React
从“酶”导入{浅层、渲染、装载、配置}
从'enzyme-Adapter-react-16'导入适配器;
从“../../../app/components/login/LoginPage”导入{LoginPage}
配置({adapter:newadapter()});
测试('应该打招呼',()=>{
const loginPage=shallow()
expect(loginPage.contains('Hello').toBe(true))
})
运行此操作时,出现以下错误:-

Test suite failed to run

    D:/code/github/metallica2/metallica/client/src/app/__tests__/components/login/LoginPage.test.js: Unexpected token (9
:30)
         7 |
         8 | test('should say hello',() => {
      >  9 |     const loginPage = shallow(<LoginPage />)
           |                               ^
        10 |     expect(loginPage.contains('Hello').toBe(true))
        11 | })
测试套件无法运行
D:/code/github/metallica2/metallica/client/src/app/\uuuuuuuu测试\uuuuuuu组件/login/LoginPage.test.js:意外令牌(9
:30)
7 |
8 |测试('应该打招呼',()=>{
>9 | const loginPage=shallow()
|                               ^
10 | expect(loginPage.contains('Hello')。toBe(true))
11 | })
我做错了什么

谢谢


Amar

看起来您没有jsx支持。我看到您已经安装了
babeljest
,但是您是否在根文件夹中安装了
.babelrc
文件

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

通过在.babelrc中引入以下内容,我能够解决这个问题

{
  "env": {
    "test": {
      "presets": ["env", "react", "stage-2"],
      "plugins": ["transform-export-extensions"],
      "only": [
        "./**/*.js",
        "node_modules/jest-runtime"
      ]
    }
  }
}
并安装以下开发人员依赖项:-

"babel-plugin-transform-export-extensions"
"enzyme-adapter-react-16"
"jest-cli"
"react-test-renderer"

这是一个Jest不理解JSX导出的问题

您可以通过向
.babelrc
文件中添加以下行来解决此问题:

"env": {
    "test": {
      "presets": ["@babel/preset-env", "@babel/preset-react"],
      "plugins": ["transform-export-extensions"],
      "only": [
        "./**/*.js",
        "node_modules/jest-runtime"
      ]
    }
  },

然后安装
babel插件转换导出扩展

jsx看起来有问题,您确定jest使用的是babel吗?你有babel jest吗?是的,我在package.json的开发依赖项下有它