forked from qunitjs/qunit
-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathGruntfile.js
98 lines (92 loc) · 2.18 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
93
94
95
96
97
98
/*jshint node:true */
module.exports = function( grunt ) {
grunt.loadNpmTasks( "grunt-git-authors" );
grunt.loadNpmTasks( "grunt-contrib-jshint" );
grunt.loadNpmTasks( "grunt-contrib-qunit" );
grunt.loadNpmTasks( "grunt-contrib-watch" );
grunt.initConfig({
qunit: {
qunit: [
"test/index.html",
"test/async.html",
"test/logs.html"
],
addons: [
"addons/canvas/canvas.html",
"addons/close-enough/close-enough.html",
"addons/step/step.html"
]
},
jshint: {
options: {
jshintrc: ".jshintrc"
},
gruntfile: [ "Gruntfile.js" ],
qunit: [ "qunit/**/*.js" ],
addons: {
options: {
jshintrc: "addons/.jshintrc"
},
files: {
src: [ "addons/**/*.js" ]
}
},
tests: {
options: {
jshintrc: "test/.jshintrc"
},
files: {
src: [ "test/**/*.js" ]
}
}
},
watch: {
files: [ "*", ".jshintrc", "{addons,qunit,test}/**/{*,.*}" ],
tasks: "default"
}
});
grunt.registerTask( "build-git", function( sha ) {
function processor( content ) {
var tagline = " - A JavaScript Unit Testing Framework";
return content.replace( tagline, "-" + sha + " " + grunt.template.today("isoDate") + tagline );
}
grunt.file.copy( "qunit/qunit.css", "dist/qunit-git.css", {
process: processor
});
grunt.file.copy( "qunit/qunit.js", "dist/qunit-git.js", {
process: processor
});
});
grunt.registerTask( "testswarm", function( commit, configFile ) {
var testswarm = require( "testswarm" ),
config = grunt.file.readJSON( configFile ).qunit,
runs = {},
done = this.async();
["index", "async"].forEach(function (suite) {
runs[suite] = config.testUrl + commit + "/test/" + suite + ".html";
});
testswarm.createClient( {
url: config.swarmUrl,
pollInterval: 10000,
timeout: 1000 * 60 * 30
} )
.addReporter( testswarm.reporters.cli )
.auth( {
id: config.authUsername,
token: config.authToken
} )
.addjob(
{
name: "QUnit commit #<a href='https://github.com/jquery/qunit/commit/" + commit + "'>" + commit.substr( 0, 10 ) + "</a>",
runs: runs,
browserSets: config.browserSets
}, function( err, passed ) {
if ( err ) {
grunt.log.error( err );
}
done( passed );
}
);
});
grunt.registerTask("default", ["jshint", "qunit"]);
};