karma-coverage-istanbul-reporter

About

This is a reporter only and does not perform the actual instrumentation of your code. Webpack users should use the istanbul-instrumenter-loader and then use this karma reporter to do the actual reporting. See the test config for an e2e example of how to combine them.

Installation

npm install karma-coverage-istanbul-reporter --save-dev

Configuration

// karma.conf.js

constpath=require('path');

module.exports=function(config){

config.set({

// ... rest of karma config

// anything named karma-* is normally auto included so you probably dont need this

plugins:['karma-coverage-istanbul-reporter'],

reporters:['coverage-istanbul'],

// any of these options are valid: https://github.com/istanbuljs/istanbul-api/blob/47b7803fbf7ca2fb4e4a15f3813a8884891ba272/lib/config.js#L33-L38

coverageIstanbulReporter:{

// reports can be any that are listed here: https://github.com/istanbuljs/istanbul-reports/tree/590e6b0089f67b723a1fdf57bc7ccc080ff189d7/lib

reports:['html','lcovonly','text-summary'],

// base output directory

dir:path.join(__dirname,'coverage'),

// if using webpack and pre-loaders, work around webpack breaking the source path

fixWebpackSourcePaths:true,

// Most reporters accept additional config options. You can pass these through the `report-config` option

'report-config':{

// all options available at: https://github.com/istanbuljs/istanbul-reports/blob/590e6b0089f67b723a1fdf57bc7ccc080ff189d7/lib/html/index.js#L135-L137

html:{

// outputs the report in ./coverage/html

subdir:'html'

}

},

// enforce percentage thresholds

// anything under these percentages will cause karma to fail with an exit code of 1 if not running in watch mode