2017-08-29 149 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

相关问题