/karma-remap-istanbul

Call remap-istanbul as a karma reporter, enabling remapped reports on watch

Primary LanguageJavaScriptMIT LicenseMIT

karma-remap-istanbul

Call remap-istanbul as a karma reporter, enabling remapped reports on watch

Installation

Install karma-remap-istanbul as a dev-dependency in your project.

npm install karma-remap-istanbul --save-dev

Configuration

Add the plugin, reporter and reporter configuration in your karma.conf.js.

{
  plugins: ['karma-remap-istanbul'],
  reporters: ['progress', 'karma-remap-istanbul'],
  remapIstanbulReporter: {
    remapOptions: {}, //additional remap options
    reportOptions: {}, //additional report options
    reports: {
      lcovonly: 'path/to/output/coverage/lcov.info',
      html: 'path/to/output/html/report'
    }
  }
}

Example configuration with karma-coverage

{
  preprocessors: {
    'build/**/!(*spec).js': ['coverage']
  },
  plugins: ['karma-remap-istanbul', 'karma-coverage'],
  reporters: ['progress', 'coverage', 'karma-remap-istanbul'],
  remapIstanbulReporter: {
    reports: {
      html: 'coverage'
    }
  }
}

You will need to either install karma-coverage and configure it as a preprocessor for your transpiled modules under test or instrument the modules under test as part of your build process (i.e. via a tool like webpack and the sourcemap-istanbul-instrumenter-loader). If the latter option is chosen, the coverage statistics will need to be stored by the build tool on the __coverage__ global variable (istanbul's default) or karma will not transmit the coverage back to the runner. For a full e2e example please look here.

Alternatives

For some build tools there are better suited solutions than using this module.