-
Book Overview & Buying
-
Table Of Contents
Advanced Express Web Application Development
By :
Grunt is a task runner and a great way to automate your node projects. Let's add a simple grunt script to our project in order to automate running tests and code coverage. Let's install Grunt and Grunt CLI:
npm install -g grunt-cli npm install grunt –-save-dev
The grunt-cafe-mocha is a grunt module for running mocha; this module will also allow us to automate code coverage reports:
npm install grunt-cafe-mocha –-save-dev
The grunt-jscoverage simply generates an instrumented version of our source code and writes it to ./lib-cov:
npm install grunt-jscoverage –-save-dev
The grunt-env allows you to set the current node environment, NODE_ENV:
npm install grunt-env –-save-dev
Let's create a grunt file ./gruntfile.js. We load the grunt modules we just installed, and grunt.initConfig contains a configuration for each grunt module:
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-jscoverage');
grunt.loadNpmTasks('grunt-cafe-mocha');
grunt.loadNpmTasks('grunt-env');
grunt.initConfig({
env: {
test: { NODE_ENV: 'TEST' },
coverage: { NODE_ENV: 'COVERAGE' }
},
cafemocha: {
test: {
src: 'test/*.js',
options: {
ui: 'bdd',
reporter: 'spec',
},
},
coverage: {
src: 'test/*.js',
options: {
ui: 'bdd',
reporter: 'html-cov',
coverage: {
output: 'coverage.html'
}
}
},
},
jscoverage: {
options: {
inputDirectory: 'lib',
outputDirectory: 'lib-cov',
highlight: false
}
}
});
grunt.registerTask('test', [ 'env:test', 'cafemocha:test' ]);
grunt.registerTask('coverage', [ 'env:coverage', 'jscoverage', 'cafemocha:coverage' ]);
};The configuration for cafemocha contains two sections; one for running our tests and one for generating a code coverage report. In order to run our tests from grunt, execute the following command:
grunt test
The following line registers a task that sets the environment using env and runs both the jscoverage and cafemocha:coverage tasks in sequence:
grunt.registerTask('coverage', [ 'env:coverage', 'jscoverage', 'cafemocha:coverage' ]);In order to run our coverage from grunt, execute the following command:
grunt coverage
This command will generate the coverage report as described earlier.
Change the font size
Change margin width
Change background colour