Task automation with Grunt
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:
The grunt-cafe-mocha is a grunt module for running mocha; this module will also allow us to automate code coverage reports:
The grunt-jscoverage simply generates an instrumented version of our source code and writes it to ./lib-cov:
The grunt-env allows you to set the current node environment, NODE_ENV:
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:
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:
The following line registers a task that sets the environment using env and runs both the jscoverage and cafemocha:coverage tasks in sequence:
In order to run our coverage from grunt, execute the following command:
This command will generate the coverage report as described earlier.