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