Skip to content

Commit 50cf829

Browse files
committed
Add grunt test command to launch karma testing
1 parent 4b2c007 commit 50cf829

File tree

3 files changed

+51
-4
lines changed

3 files changed

+51
-4
lines changed

Gruntfile.js

+22-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module.exports = function(grunt) {
77
uglifyTargets = {};
88
gendevTargets = {};
99
gentestTargets = {};
10+
testTargets = {};
1011
for (var target in targetConfig) {
1112
var suffix = target === targetConfig.defaultTarget ? '' : '-' + target;
1213
uglifyTargets[target] = {
@@ -31,6 +32,7 @@ module.exports = function(grunt) {
3132
};
3233
gendevTargets[target] = targetConfig[target].src;
3334
gentestTargets[target] = targetConfig[target];
35+
testTargets[target] = {};
3436
}
3537

3638
grunt.initConfig({
@@ -58,6 +60,7 @@ module.exports = function(grunt) {
5860
],
5961
}
6062
},
63+
test: testTargets,
6164
});
6265

6366
grunt.task.registerMultiTask('gendev', 'Generate web-animations-<target>.dev.js', function() {
@@ -76,16 +79,32 @@ module.exports = function(grunt) {
7679
grunt.log.writeln('File ' + filename + ' created');
7780
});
7881

79-
grunt.registerTask('clean', 'Remove files generated by grunt', function() {
82+
grunt.task.registerMultiTask('test', 'Run <target> tests under Karma', function() {
83+
var done = this.async();
84+
var config = targetConfig[this.target];
85+
var karmaConfig = require('./test/karma-config.js');
86+
karmaConfig.files = ['test/runner.js'].concat(config.src, config.test);
87+
var karmaServer = require('karma').server;
88+
karmaServer.start(karmaConfig, function(exitCode) {
89+
done(exitCode === 0);
90+
});
91+
});
92+
93+
grunt.task.registerTask('clean', 'Remove files generated by grunt', function() {
8094
grunt.file.expand('web-animations-*').concat(grunt.file.expand('test/runner-*.html')).forEach(function(file) {
8195
grunt.file.delete(file);
8296
grunt.log.writeln('File ' + file + ' removed');
8397
});
8498
});
8599

86100
for (var target in targetConfig) {
87-
grunt.registerTask(target, ['uglify:' + target, 'gendev:' + target, 'gentest:' + target, 'gjslint'])
101+
grunt.task.registerTask(target, [
102+
'uglify:' + target,
103+
'gendev:' + target,
104+
'gentest:' + target,
105+
'gjslint',
106+
]);
88107
}
89108

90-
grunt.registerTask('default', ['uglify', 'gendev', 'gentest', 'gjslint']);
109+
grunt.task.registerTask('default', ['uglify', 'gendev', 'gentest', 'gjslint']);
91110
};

package.json

+9-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@
99
"chai": "^1.9.1",
1010
"grunt": "^0.4.4",
1111
"grunt-contrib-uglify": "^0.4.0",
12-
"grunt-gjslint": "^0.1.4"
12+
"grunt-gjslint": "^0.1.4",
13+
"grunt-karma": "^0.8.2",
14+
"karma": "^0.12.14",
15+
"karma-mocha": "^0.1.3",
16+
"karma-chai": "^0.1.0",
17+
"karma-chrome-launcher": "~0.1.4",
18+
"karma-firefox-launcher": "~0.1.3",
19+
"karma-ie-launcher": "~0.1.5",
20+
"karma-safari-launcher": "~0.1.1"
1321
}
1422
}

test/karma-config.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
module.exports = {
2+
frameworks: ['mocha', 'chai'],
3+
plugins: [
4+
'karma-mocha',
5+
'karma-chai',
6+
'karma-chrome-launcher'
7+
// 'karma-firefox-launcher'
8+
],
9+
browsers: ['Chrome'],
10+
// browsers: ['Safari', 'Chrome', 'ChromeCanary', 'Firefox', 'IE'],
11+
basePath: '.',
12+
files: [
13+
// Populated in `grunt test` task.
14+
],
15+
singleRun: true,
16+
port: 9876,
17+
reporters: ['progress'],
18+
colors: true,
19+
autoWatch: false,
20+
};

0 commit comments

Comments
 (0)