setupTests.js 未在 CRA React 应用中自动加载
setupTests.js not loading automatically in CRA react app
我已经读到 src/setupTests.js 应该在每次测试之前加载,但我仍然看到每个测试都失败并出现错误:
"Enzyme Internal Error: Enzyme expects an adapter to be configured, but found none."
这是我的 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
编写的 "test" 脚本
"scripts": {
"test": "jest",
"test:watch": "jest --watch",
"test:updateSnapshots": "jest --updateSnapshot"
}
我用以下某种形式开始每个测试文件:
import React from 'react';
import { shallow } from 'enzyme';
我正在使用 React-scripts 2.1.1 的 React 16
我做错了什么任何人都能看到的吗?
它应该适用于此配置。由于相同的配置适用于我的应用程序。尝试将导入放入测试文件。
import "../setupTests"
有时这行得通。
将以下内容添加到 package.json
后是否有效
"scripts": {
...
"test": "react-scripts test",
...
}
如果您在 create-react-app npm test
脚本中处于监视模式时创建了 setupTests.js 文件,则需要退出监视模式并重新启动它才能开始工作。
更新package.json.
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test setupFile ./src/setupTests.js",
"eject": "react-scripts eject"
}
我在这里遇到了同样的错误,但另一个原因是:
我在文件名中有一个 拼写错误:
src/setupTest.js
而不是 src/setupTest*s*.js
然后默认的 CRA (creat-react-app) package.json
命令将适配器加载到您的测试中:
"test": "react-scripts test"
我已经读到 src/setupTests.js 应该在每次测试之前加载,但我仍然看到每个测试都失败并出现错误:
"Enzyme Internal Error: Enzyme expects an adapter to be configured, but found none."
这是我的 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-scripts 2.1.1 的 React 16
我做错了什么任何人都能看到的吗?
它应该适用于此配置。由于相同的配置适用于我的应用程序。尝试将导入放入测试文件。
import "../setupTests"
有时这行得通。
将以下内容添加到 package.json
后是否有效"scripts": {
...
"test": "react-scripts test",
...
}
如果您在 create-react-app npm test
脚本中处于监视模式时创建了 setupTests.js 文件,则需要退出监视模式并重新启动它才能开始工作。
更新package.json.
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test setupFile ./src/setupTests.js",
"eject": "react-scripts eject"
}
我在这里遇到了同样的错误,但另一个原因是:
我在文件名中有一个 拼写错误:
src/setupTest.js
而不是src/setupTest*s*.js
然后默认的 CRA (creat-react-app) package.json
命令将适配器加载到您的测试中:
"test": "react-scripts test"