2015-10-14 55 views
4

尝试使用webpack,isparta,jasmine和karma的组合时,我很难获得正确的代码覆盖率数字。测试结束时的数字不能正确反映ES6代码。但是,用户界面显示正确的ES6文件,并显示正确的高亮,而不是正确的数字。如何使用isparta,webpack,jasmine和karma获得准确的代码覆盖号?

下面是我正在谈论的Wrong Code Coverage Numbers的屏幕截图。代码和突出显示是正确的,但数字不是。例如,声明号码完全关闭。我假设这些数字来自传输的代码。

这里是我的karma.config.js

'use strict'; 

var conf = require('./gulp/conf'); 
var _ = require('lodash'); 
var wiredep = require('wiredep'); 
var webpackConfig = require('./webpack.config.js'); 

function listFiles() { 
    var wiredepOptions = _.extend({}, conf.wiredep, { 
     dependencies: true, 
     devDependencies: true 
    }); 

    var dependencies = wiredep(wiredepOptions).js; 

    dependencies.push('test-context.js'); 

    return dependencies; 
} 

module.exports = function(config) { 

    var configuration = { 
     files: listFiles(), 
     logLevel: 'WARN', 
     frameworks: ['jasmine'], 
     browsers : ['PhantomJS'], 
     plugins : [ 
      'karma-phantomjs-launcher', 
      'karma-coverage', 
      'karma-jasmine', 
      'karma-webpack' 
     ], 
     preprocessors: { 
      'test-context.js': ['webpack'] 
     }, 
     webpack: webpackConfig, 
     webpackMiddleware: { 
      noInfo: true 
     }, 
     reporters: ['progress', 'coverage'], 
     coverageReporter: { 
      dir : 'coverage/', 
      reporters: [ 
       { type: 'html' } 
      ] 
     } 
    }; 

    config.set(configuration); 
}; 

这里是我的WebPack配置

var webpack = require('webpack'); 

module.exports = { 
    node: { 
     fs: 'emtpy' 
    }, 
    module: { 
     preLoaders: [ 
      { 
       test: /\.js$/, 
       loader: 'isparta', 
       include: /(src)/ 
      } 
     ], 
     loaders: [ 
      { 
       test: /\.js$/, 
       include: /(src)/, 
       loader: 'babel?stage=0' 
      } 
     ] 
    }, 
    resolve: { 
     extensions: [ 
      '', 
      '.js' 
     ] 
    }, 
    devtool: 'inline-source-map' 
}; 

这里是test.context.js

var context = require.context('./test', true, /\.js$/); 
context.keys().forEach(context); 

var srcContext = require.context('./src', true, /\.js$/); 
srcContext.keys().forEach(srcContext); 

回答

相关问题