grunt-not-constantinople
Version:
Grunt task to easily add Istanbul code coverage using any unit-testing framework.
128 lines (99 loc) • 3.95 kB
Markdown
# grunt-not-constantinople [](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/).