-
Notifications
You must be signed in to change notification settings - Fork 1
/
Gruntfile.js
92 lines (80 loc) · 1.67 KB
/
Gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
module.exports = function(grunt) {
/*
* Variables
*/
var src = 'src/**/*.js';
var specs = 'spec/*Spec.js';
/*
* Config
*/
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
jasmine : {
pivotal : {
src : src,
options : {
specs : specs,
helpers : 'spec/*Helper.js'
}
}
},
watch : {
files : [ src, specs ],
tasks : [ 'jasmine', 'growl:jasmine' ]
},
growl : {
jasmine : {
message : '<%= jasmine.message %>',
title : "Jasmine Test Results",
image : __dirname + '/spec/images/jasmine_logo.png'
}
},
jshint : {
options : {
jshintrc : '.jshintrc',
},
all : src,
},
uglify : {
options : {
mangle : false
},
all : {
files : {
'<%= pkg.name %>.min.js' : src
}
}
}
});
/*
* Load Tasks
*/
grunt.loadNpmTasks('grunt-contrib-jasmine');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-growl');
/*
* Register Tasks
*/
grunt.registerTask('default', [ 'jasmine', 'growl:jasmine', 'jshint:all',
'uglify:all', 'watch' ]);
/*
* Event Handlers
*/
grunt.event.on('jasmine.reportJUnitResults', function(results) {
var suites = results.suites;
var tests = suites.reduce(function(pVal, cVal) {
return pVal + cVal.tests;
}, 0);
var errors = suites.reduce(function(pVal, cVal) {
return pVal + cVal.errors;
}, 0);
var failures = suites.reduce(function(pVal, cVal) {
return pVal + cVal.failures;
}, 0);
var passed = tests - failures;
grunt.config.set('jasmine.message', passed + ' out of ' + tests
+ ' passed');
});
};