2017-08-29 32 views
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中配置自己來簡化它)。

回答

0

如果您使用笑話21:https://github.com/alansouzati/gulp-jest/issues/41,這是一個已知的g issue問題。降級開玩笑20應該有所幫助。

+0

其實我在這個項目中使用了v20。 我試圖將配置轉換成字符串,但它沒有幫助。 希望gulp-jest的這個問題引起了v21版本的關注並很快得到解決。 –

+0

當然,將json字符串傳遞給jest-gulp不會有幫助。問題是,jest-gulp修改了傳遞配置,假設它是一個破壞配置字符串的對象。 – SergeyS

相關問題