我使用webpack开发一个React组件。这是它的简单版本:
'use strict';
require('./MyComponent.less');
var React = require('react');
var MyComponent = React.createClass({
render() {
return (
<div className="my-component">
Hello World
</div>
);
}
});
module.exports = MyComponent;
现在,我想使用jest测试此组件。这是我的相关内容package.json
:
"scripts": {
"test": "jest"
},
"jest": {
"rootDir": ".",
"testDirectoryName": "tests",
"scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
"unmockedModulePathPatterns": [
"react"
]
}
运行时npm test
,出现以下错误:
语法错误:/Users/mishamoroshko/react-component/src/tests/MyComponent.js:/Users/mishamoroshko/react-component/src/MyComponent.js:/Users/mishamoroshko/react-component/src/MyComponent.less:意外代币非法
看起来webpack需要先处理require('./MyComponent.less')
才能开玩笑才能运行测试。
我想知道是否需要使用诸如jest-webpack之类的东西。如果是,是否可以指定多个scriptPreprocessor
s?(请注意,我已经使用了babel-jest
)
CSS文件也有类似的问题。正如您之前提到的jest-webpack可以很好地解决此问题。您也不必模拟或使用任何模块映射器。对我们来说,我们从我们的替代NPM测试命令
jest
到jest-webpack
,它只是工作。