Leo*_*ban 8 javascript reactjs jestjs
不知道为什么在这条线上抱怨:
const wrapper = shallow(<BitcoinWidget {...props} />);
整个测试:
import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
// Local components
import BitcoinWidget from './bitcoinWidget';
const props = {
logo: 'foobar',
coin: {
price: 0
},
refresh: jest.fn()
}
describe('when rendering', () => {
const wrapper = shallow(<BitcoinWidget {...props} />);
it('should render a component matching the snapshot', () => {
const tree = toJson(wrapper);
expect(tree).toMatchSnapshot();
expect(wrapper).toHaveLength(1);
});
});
Run Code Online (Sandbox Code Playgroud)
组件
import React from 'react';
const BitcoinWidget = ({ logo, coin : { price }, refresh }) => {
return (
<div className="bitcoin-wrapper shadow">
<header>
<img src={logo} alt="Bitcoin Logo"/>
</header>
<div className="price">
Coinbase
${price}
</div>
<button className="btn striped-shadow white" onClick={refresh}>
<span>Refresh</span>
</button>
</div>
);
}
export default BitcoinWidget;
Run Code Online (Sandbox Code Playgroud)
还有我的package.json
{
"name": "bitcoin",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.18.0",
"react": "^16.4.2",
"react-dom": "^16.4.2",
"react-redux": "^5.0.7",
"react-scripts": "1.1.5",
"redux": "^4.0.0",
"redux-thunk": "^2.3.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"eject": "react-scripts eject",
"test": "yarn run test-jest:update --verbose --maxWorkers=2",
"test-jest:update": "jest src --updateSnapshot",
"test-jest": "jest src"
},
"now": {
"name": "bitcoin",
"engines": {
"node": "8.11.3"
},
"alias": "leongaban.com"
},
"jest": {
"verbose": true,
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/client/assetsTransformer.js"
},
"moduleFileExtensions": [
"js",
"jsx"
],
"moduleDirectories": [
"node_modules"
]
},
"devDependencies": {
"enzyme": "^3.4.4",
"enzyme-to-json": "^3.3.4",
"jest": "^23.5.0"
}
}
Run Code Online (Sandbox Code Playgroud)
pau*_*n22 14
对于任何使用 create-react-app 的人来说,在使用 create-react-app 时只能更改 package.json 中的某些 jest 配置。
我在 Jest 选取内部库时遇到问题,无论我从该库导入什么地方,Jest 都会显示“意外令牌”错误。
要解决此问题,您可以将测试脚本更改为以下内容:
"test": "react-scripts test --transformIgnorePatterns 'node_modules/(?!(<your-package-goes-here>)/)'",
Ali*_*Ali 12
对于那些在这个问题上苦苦挣扎并且上述答案都不适合他们的人。
经过很长时间的搜索,我找到了这个解决方案:
编辑jest.config.js添加transformIgnorePatterns
//jest.config.js
module.exports = {
preset: 'ts-jest',
testEnvironment: 'jsdom',
testMatch: ["**/__tests__/**/*.ts?(x)", "**/?(*.)+(test).ts?(x)"],
transform: {
"^.+\\.(js|ts)$": "ts-jest",
},
transformIgnorePatterns: [
"/node_modules/(?![@autofiy/autofiyable|@autofiy/property]).+\\.js$",
"/node_modules/(?![@autofiy/autofiyable|@autofiy/property]).+\\.ts$",
"/node_modules/(?![@autofiy/autofiyable|@autofiy/property]).+\\.tsx$",
],
}
Run Code Online (Sandbox Code Playgroud)
将要忽略的包放入其中[]
并用分隔符分隔|
就我而言[@autofiy/autofiyable|@autofiy/property]
将此添加到您的package.json
笑话配置中。
"transform": {
"\\.js$": "<rootDir>/node_modules/babel-jest"
},
Run Code Online (Sandbox Code Playgroud)
如果问题仍然存在,请告诉我。
我将笑话更新添加到了我的package.json
"jest": {
"transformIgnorePatterns": [
"node_modules/(?!(<package-name>|<second-package-name>)/)"
]
},
Run Code Online (Sandbox Code Playgroud)
|<second-package-name>
如果不需要,请随意删除。
您也可以将其作为脚本的一部分,如@paulosullivan22所述
"test": "react-scripts test --transformIgnorePatterns 'node_modules/(?!(<package-name>)/)'"
归档时间: |
|
查看次数: |
8648 次 |
最近记录: |