Grunt plugin to merge lcov files from multiple test runs.

Downloads in past


301.2.38 years ago9 years agoMinified + gzip package size for grunt-lcov-merge in KB


Build Status npm version Coverage Status Code Climate Dependency Status
Grunt plugin to merge lcov files from multiple test runs, for use with a tool like coveralls.

Getting Started

This plugin works with any grunt >=0.4.0
To install, add grunt-lcov-merge to your package.json. The easiest way to do that is
npm install grunt-lcov-merge --save-dev

Once the plugin has been installed, you'll need to enable it in your Gruntfile by adding

You can then run with
grunt lcovMerge



Type: Array Default: ['file']
What emitters to send the merged data to. Supported emitters are 'file', which sends the merged data to a file, and 'event', which sends it out to the 'coverage' event and can be listened to with
grunt.event.on('coverage', function(lcov, done) {});


Type: String Default coverage/
If a file emitter is specified, this is the output file to pipe data to.


jshint: {
    src: ['Gruntfile.js', 'tasks/**/*.js', 'test/**/*.js'],
    options: {
        jshintrc: true

mocha_istanbul: {
  coverage: {
      src: 'test/**/*.spec.js',
      options: {
          coverageFolder: 'build/coverage',
          reportFormats: ['lcov'],

lcovMerge: {
  options: {
      emitters: ['event', 'file'],
      outputFile: ''
  src: ['build/coverage/*.info', 'build/coverage/**/*.info']

  grunt.event.on('coverage', function(lcov, done) {
// See below


Note that grunt-lcov-merge allows for source files to be specified via any file format.

Event emitter

One of the most useful ways to consume this plugin is to use the coverage event to send the lcov data to a service like coveralls:
grunt.event.on('coverage', function(lcov, done) {
    require('coveralls').handleInput(lcov, function(err) {
        if (err) {
          return done(err);

Using the coveralls module means that Travis-CI can automatically send your merged LCOV to coveralls.

Version History

  • 0.1.0 - Initial version
  • 0.1.1 - Trim down the number of files in the distribution
  • 0.1.2 - Update dependencies, work around coveralls issue.
  • 0.1.3 - Documentation updates
  • 1.0.0 - Official release
  • 1.1.0 - Support Grunt >=1.0
  • 1.2.0 - Update dependencies
  • 1.2.1 - Fix incorrect npm version
  • 1.2.2 - Fix issues with test code on travis
  • 1.2.3 - ACTUALLY Fix issues with test code on travis (aren't immutable versions fun??)