grunt-lcov-merge
Grunt plugin to merge lcov files from multiple test runs, for use with a tool like coveralls.
Getting Started
This plugin requires 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
grunt.loadNpmTasks('grunt-lcov-merge');
You can then run with
grunt lcovMerge
Options
emitters
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) {});
outputFile
Type: String
Default coverage/lcov-merge.info
If a file emitter is specified, this is the output file to pipe data to.
Example
grunt.initConfig({
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: 'mergeLcov.info'
},
src: ['build/coverage/*.info', 'build/coverage/**/*.info']
}
});
grunt.event.on('coverage', function(lcov, done) {
done();
});
grunt.loadNpmTasks('grunt-lcov-merge');
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);
}
done();
});
Using the coveralls module means that Travis-CI can automatically send your merged LCOV to coveralls.