Gruntfile.js
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-mocha-test');
grunt.loadNpmTasks('grunt-mocha-cov');
grunt.loadNpmTasks('grunt-exec');
grunt.loadTasks('tasks');
grunt.initConfig({
jshint: {
all: ['tasks/*.js'],
options: {
reporter: require('jshint-stylish'),
eqeqeq: true,
es3: true,
indent: 2,
newcap: true,
quotmark: 'single',
boss: true
}
},
mochacov: {
lcov: {
options: {
reporter: 'mocha-lcov-reporter',
instrument: true,
ui: 'mocha-given',
require: ['coffee-script/register', 'should', 'should-sinon'],
output: 'coverage/coverage.lcov'
},
src: ['test/**/*.coffee'],
},
html: {
options: {
reporter: 'html-cov',
ui: 'mocha-given',
require: ['coffee-script/register', 'should', 'should-sinon'],
output: 'coverage/coverage.html'
},
src: ['test/**/*.coffee']
}
},
mochaTest: {
options: {
reporter: 'spec',
ui: 'mocha-given',
require: ['coffee-script/register', 'should', 'should-sinon']
},
test: {
src: ['test/**/*.coffee']
}
},
travisMatrix: {
v4: {
test: function() {
return /^v4/.test(process.version);
},
tasks: ['mochacov:lcov', 'exec:codeclimate']
}
},
exec: {
codeclimate: 'codeclimate-test-reporter < coverage/coverage.lcov'
}
});
grunt.registerTask('mocha', ['mochaTest']);
grunt.registerTask('default', ['jshint:all', 'mocha']);
grunt.registerTask('coverage', ['mochacov:html']);
grunt.registerTask('ci', ['jshint:all', 'mocha', 'travisMatrix:v4']);
};