Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jacob-meacham/grunt-lcov-merge

:family: Grunt plugin to merge lcov files from multiple test runs.
https://github.com/jacob-meacham/grunt-lcov-merge

Last synced: about 1 month ago
JSON representation

:family: Grunt plugin to merge lcov files from multiple test runs.

Awesome Lists containing this project

README

        

# grunt-lcov-merge
[![Build Status](https://travis-ci.org/jacob-meacham/grunt-lcov-merge.svg?branch=develop)](https://travis-ci.org/jacob-meacham/grunt-lcov-merge)
[![npm version](https://badge.fury.io/js/grunt-lcov-merge.svg)](http://badge.fury.io/js/grunt-lcov-merge)
[![Coverage Status](https://coveralls.io/repos/jacob-meacham/grunt-lcov-merge/badge.svg?branch=develop)](https://coveralls.io/r/jacob-meacham/grunt-lcov-merge?branch=develop)
[![Code Climate](https://codeclimate.com/github/jacob-meacham/grunt-lcov-merge/badges/gpa.svg)](https://codeclimate.com/github/jacob-meacham/grunt-lcov-merge)
[![Dependency Status](https://www.versioneye.com/user/projects/54cbfc3cde7924f81a0001e4/badge.svg?style=flat)](https://www.versioneye.com/user/projects/54cbfc3cde7924f81a0001e4)

> Grunt plugin to merge lcov files from multiple test runs, for use with a tool like [coveralls](coveralls.io).

## 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

```shell
npm install grunt-lcov-merge --save-dev
```

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

```js
grunt.loadNpmTasks('grunt-lcov-merge');
```

You can then run with
```shell
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

```js
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
```js
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) {
// See below
done();
});

grunt.loadNpmTasks('grunt-lcov-merge');
```

Note that grunt-lcov-merge allows for source files to be specified via any [file format](http://gruntjs.com/configuring-tasks#files).

## 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:

```js
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.

## 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??)