4

私はkarma、webpack、jasmineを使用してES6コードをテストしています。コードカバレッジのためにistanbulとispartaを使用しています。私のテストはすべて成功したようですが、jqueryとjquery-resizable-domをインポートしなければならなかったので、カバレッジは実際には低くなりました。ispartaを使用してkarmaのコードカバレッジからjqueryのようなサードパーティのインポートを除外するにはどうすればいいですか?

私は、バニラのjsコード(〜200行)の多くを持っていますが、このような何かを追加しました:

import $ from 'jquery'; 
require('imports?jQuery=jquery!jquery-resizable-dom'); 

const makeImagesResizable =() => { 
    $('.img').resizable({ 
    handleSelector: '> .glyphicon-resize-full' 
    }); 
}; 

export { makeImagesResizable }; 

そして、私のジャスミンのテストでは、私はそれをテストするためにmakeImagesResizableを輸入しました。テストを実行すると、カバレッジにjqueryコードが含まれているため、27%のコードカバレッジのようなものが得られます。上記のコードブロック全体(jqueryのインポートとjqueryを使用するすべてのコード)を削除すると、カバレッジが実際のカバレッジに近い94%になります(jqueryコードはかなり短くなります)。

実際にコードから取得した数値を反映するために、サードパーティのインポートをコードカバレッジから除外する方法はありますか?ここで

はまた私のカルマの設定です:

const webpack = require('webpack'); 
const isparta = require('isparta'); 

module.exports = (config) => { 
    config.set({ 
    frameworks: ['jasmine'], 
    files: [ 
     './spec/*.spec.js', 
    ], 
    webpack: { 
     module: { 
     loaders: [ 
      { test: /\.js$/, loader: 'imports?define=>false!babel' }, 
     ], 
     }, 
    }, 
    webpackMiddleware: { 
     noInfo: true, 
    }, 
    preprocessors: { 
     './spec/*.spec.js': ['webpack', 'coverage'], 
    }, 
    reporters: ['progress', 'coverage'], 
    coverageReporter: { 
     instrumenters: { isparta }, 
     reporters: [ 
     { 
      type: 'html', 
      dir: 'coverage', 
     }, 
     ], 
    }, 
    browsers: ['Chrome'], 
    plugins: [ 
     'karma-webpack', 
     'karma-jasmine', 
     'karma-coverage', 
     'karma-chrome-launcher', 
    ], 
    }); 
}; 

私は唯一のソースファイルを含むので、テストファイルを含め、何らかの理由でまったく報道を返しません。

答えて

関連する問題