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

https://github.com/traviswimer/grunt-not-constantinople

Grunt task to easily add Istanbul code coverage using any unit-testing framework.
https://github.com/traviswimer/grunt-not-constantinople

Last synced: about 1 year ago
JSON representation

Grunt task to easily add Istanbul code coverage using any unit-testing framework.

Awesome Lists containing this project

README

          

# grunt-not-constantinople [![Build Status](https://travis-ci.org/traviswimer/grunt-not-constantinople.png?branch=master)](https://travis-ci.org/traviswimer/grunt-not-constantinople)

> Grunt task to easily add Istanbul code coverage using any unit-testing framework.

## Getting Started
This plugin requires [Grunt](http://gruntjs.com/) `~0.4.4` -- [Learn to use Grunt](http://gruntjs.com/getting-started)

Install the plugin with this command:

```shell
npm install grunt-not-constantinople --save-dev
```

Enable in your Gruntfile with:

```js
grunt.loadNpmTasks('grunt-not-constantinople');
```

## Quick setup

```js
grunt.initConfig({
not_constantinople: {
coverage: {
options: {
unitTestTask: 'mochaTest'
}
}
},
mochaTest: {
test: {
options: {
reporter: 'spec'
},
src: ['tests/**/*.js']
}
},
});
```

This uses [mochaTest](https://www.npmjs.org/package/grunt-mocha-test) as an example unit testing framework, but you can use any other framework instead. You just have to specify the task to be run as a string value for the `unitTestTask` option.

## The "not_constantinople" task

### Overview
In your project's Gruntfile, add a section named `not_constantinople` to the data object passed into `grunt.initConfig()`.

```js
grunt.initConfig({
not_constantinople: {
customized_coverage: {
options: {
// REQUIRED OPTION - This should be the task that runs your unit tests (e.g. 'mochaTest', 'nodeunit:myTests', etc.)
unitTestTask: 'myUnitTestingTask',
// directory names to be used for your tests and coverage
directories: {
root: 'test',
coverage: 'coverage',
sourceFiles: 'app/*.js'
},
// Coverage thresholds. Set to false to ignore thresholds
thresholds: {
statements: 90,
branches: 90,
lines: 90,
functions: 90
},
// The format of the coverage reports
report: {
type: 'lcov',
print: 'detail'
},
// removes the contents of the coverage folder before running Istanbul
cleanup: true
}
}
},
});
```

*All values in this example represent the default values that will be used if they are not specified.*

### Options

#### options.unitTestTask
Type: `String`

The string value for the Grunt task to be called to run your unit tests.

#### options.directories
Type: `object`
* __root__ - directory that will contain your coverage directory
* __coverage__ - directory that will contain all coverage files
* __sourceFiles__ - The source files that are used by your unit tests

#### options.thresholds
Type: `object`
* __statements__ - Percent coverage of statements that is considered passing
* __branches__ - Percent coverage of logical branches that is considered passing
* __lines__ - Percent coverage of lines that is considered passing
* __functions__ - Percent coverage of functions that is considered passing

#### options.report
Type: `object`
* __type__ - type of coverage report (e.g. lcov, html, etc.)
* __print__

#### options.cleanup
Type: `boolean`

If `true`, will remove the contents of the coverage folder before running Istanbul.

#### options.instrumentationOptions
Type: `object`

Use this to pass additional Istanbul instrumentation configuration along (some values may be overridden by this task). See the "instrumentation" section of the command output from `istanbul help config`.

#### options.reportingOptions
Type: `object`

Use this to pass additional Istanbul reporting configuration along (some values may be overridden by this task). See the "reporting" section of the command output from `istanbul help config`.

## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).