UNPKG

grunt-not-constantinople

Version:

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

128 lines (99 loc) 3.95 kB
# 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/).