0
我试图测试React组件导入SASS与使用gulp任务的笑话。 这里的问题是gulp-jest没有映射模块名称(所以它不能跳过.scss文件)并且测试失败(抛出:“SyntaxError:Unexpected token *”)。我不知道它为什么这样表现。gulp-jest不适用配置(moduleNameMapper是具体的)
最奇怪的是,通过“npm test”和jest-cli可以完美地工作,但由于某种原因并没有进行“吞咽测试”。
以下是部分:
import React from 'react';
import '../../scss/App.scss';
export default class App extends React.Component {
render() {
return (
<div className="main">
<h1>Here we go!</h1>
</div>
)
}
}
下面是测试:
import React from 'react';
import App from '../src/js/components/App';
describe('App',() => {
test('should be a React component',() => {
let instance = App.prototype instanceof React.Component;
expect(instance).toBe(true);
});
});
这里是gulpfile:
var gulp = require('gulp');
var jest = require('gulp-jest').default;
gulp.task('test',() => {
process.env.NODE_ENV = 'test';
return gulp.src('test')
.pipe(jest({
config: {
"transformIgnorePatterns": [
"<rootDir>/dist/", "<rootDir>/node_modules/"
],
"automock": false,
"moduleNameMapper": {
"\\.scss$": "<rootDir>/jestignore.js"
}
}
}));
});
jestignore.js在根目录只是出口空目的。
我确实有jest.config.js文件导出npm test命令的确切配置(只是想通过改变require()在gulpfile中配置自己来简化它)。
其实我在这个项目中使用了v20。 我试图将配置转换成字符串,但它没有帮助。 希望gulp-jest的这个问题引起了v21版本的关注并很快得到解决。 –
当然,将json字符串传递给jest-gulp不会有帮助。问题是,jest-gulp修改了传递配置,假设它是一个破坏配置字符串的对象。 – SergeyS