setupTests.js不会在CRA React App中自动加载

时间:2018-12-05 23:54:49

标签: reactjs jestjs enzyme create-react-app babel-jest

我已经读到src / setupTests.js应该在每次测试之前加载,但是我仍然使每个测试失败并显示以下错误:

  

“酶内部错误:酶希望配置适配器,但找不到。”

这是我的src / setupTests.js

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import 'whatwg-fetch';

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

这是我的package.json:

"devDependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"coveralls": "^3.0.2",
"enzyme": "^3.7.0",
"enzyme-adapter-react-16": "^1.6.0",
"enzyme-to-json": "^3.3.4",
"jest": "^23.6.0",
"react-test-renderer": "^16.5.2",
"redux-mock-store": "^1.5.3",
"regenerator-runtime": "^0.12.1",
"whatwg-fetch": "^3.0.0"
}

我正在通过npm run test运行一个“测试”脚本

"scripts": {
  "test": "jest",
  "test:watch": "jest --watch",
  "test:updateSnapshots": "jest --updateSnapshot"
}

我以以下某种形式启动每个测试文件:

import React from 'react';
import { shallow } from 'enzyme';

我正在使用React脚本2.1.1在React 16上

我在做任何人都能看到的错事吗?

5 个答案:

答案 0 :(得分:0)

它应与此配置一起使用。同样的配置也可以在我的应用中使用。尝试将导入文件放入测试文件。

highlight('prijimac HD815', 'Satelitný prijímač, Amiko HD8155');

有时候可以。

答案 1 :(得分:0)

当您将以下内容添加到package.json中时,它是否起作用

"scripts": {
  ...
  "test": "react-scripts test",
  ...

}

答案 2 :(得分:0)

如果您在create-react-app的npm test脚本中处于监视模式时制作了setupTests.js文件,那么您需要退出监视模式并重新启动它才能开始工作。

答案 3 :(得分:0)

更新package.json。

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test setupFile ./src/setupTests.js",
    "eject": "react-scripts eject"
  }

答案 4 :(得分:0)

我最终在这里遇到了相同的错误,但还有另一个原因:

我在文件名中输入了错字

  • src/setupTest.js代替src/setupTest*s*.js

然后,默认的CRA(creat-react-app)package.json命令将适配器加载到测试中:

  • "test": "react-scripts test"