Gruntfile.js
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-simple-mocha');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-mocha-istanbul')
grunt.loadNpmTasks('grunt-codeclimate');
grunt.loadNpmTasks('grunt-coveralls');
grunt.initConfig({
clean: ['lib-cov', 'coverage'],
jshint: {
options: {
eqeqeq: true,
eqnull: true,
browser: true,
quotmark: 'single',
globals: {
'nodejs': true
},
},
ignore_warning: {
/* Error messages url:
* https://github.com/jshint/jshint/blob/2.1.4/src/shared/messages.js */
options: {
'-W117': true, // "'{a}' is not defined."
'-W097': true, // "Use the function form of \"use strict\"."
},
src: ['lib/*.js', 'bin/*.js', 'test/*.js']
},
},
simplemocha: {
backend: {
src: 'test/*.test.js'
}
},
mocha_istanbul: {
coverage: {
src: 'test',
options: {
coverage: true,
check: {
lines: 75,
statements: 75
},
root: './lib',
reportFormats: ['lcovonly']
}
},
},
coveralls: {
basic_test: {
// LCOV coverage file relevant to every target
src: 'coverage/lcov.info',
// When true, grunt-coveralls will only print a warning rather than
// an error, to prevent CI builds from failing unnecessarily (e.g. if
// coveralls.io is down). Optional, defaults to false.
force: false
}
},
codeclimate: {
options: {
file: 'coverage/lcov.info',
token: '88c929df30272d27ddcaf4149966bb75ed7df6c119858d9168388d6b69d860f5'
}
}
});
grunt.event.on('coverage', function(lcov, done){
//console.log(lcov);
done(); // or done(false); in case of error
});
grunt.registerTask('codecoverage', ['coveralls', 'codeclimate']);
grunt.registerTask('default', [ 'clean',
'jshint',
'simplemocha',
'mocha_istanbul',
'codecoverage' ]);
};