node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



Generate code coverage using Istanbul.

This is a fork of the excellent karma-coverage plugin. This simply removes the CoffeeScript coverage option, which is temporarily needed as the dependencies in the Coffee coverage modules are causing problems for some projects.


The easiest way is to keep karma-coverage as a devDependency in your package.json.

  "devDependencies": {
    "karma": "~0.10",
    "karma-js-coverage": "~0.2.0"

You can simple do it by:

npm install karma-js-coverage --save-dev


Following code shows the default configuration...

// karma.conf.js 
module.exports = function(config) {
    files: [
    // coverage reporter generates the coverage 
    reporters: ['progress', 'coverage'],
    preprocessors: {
      // source files, that you wanna generate coverage for 
      // do not include tests or libraries 
      // (these files will be instrumented by Istanbul) 
      'src/*.js': ['coverage']
    // optionally, configure the reporter 
    coverageReporter: {
      type : 'html',
      dir : 'coverage/'



Type: String

Possible Values:

  • html (default)
  • lcov (lcov and html)
  • lcovonly
  • text
  • text-summary
  • cobertura (xml format supported by Jenkins)
  • teamcity (code coverage System Messages for TeamCity)

If you set type to text or text-summary, you may set the file option, like this.

coverageReporter: {
  type : 'text',
  dir : 'coverage/',
  file : 'coverage.txt'

If no filename is given, it will write the output to the console.


Type: String

Description: This will be used to output coverage reports. When you set a relative path, the directory is resolved against the basePath.

multiple reporters

You can use multiple reporters, by providing array of options.

coverageReporter: {
    {type: 'html', dir:'coverage/'},
    {type: 'teamcity'},
    {type: 'text-summary'}

For more information on Karma see the homepage.