gruntacular
Version:
grunt plugin for testacular
34 lines (30 loc) • 947 B
JavaScript
/*
* gruntacular
* https://github.com/OpenWebStack/gruntacular
*
* Copyright (c) 2013 Dave Geddes
* Licensed under the MIT license.
*/
var runner = require('testacular').runner;
var server = require('testacular').server;
module.exports = function(grunt) {
grunt.registerMultiTask('testacular', 'run testacular.', function() {
var done = this.async();
var options = this.options();
var data = this.data;
//merge options onto data, with data taking precedence
Object.keys(this.options()).forEach(function(prop){
if (!data[prop]) data[prop] = options[prop];
});
if (data.configFile) {
data.configFile = grunt.template.process(data.configFile);
}
//support `testacular run`, useful for grunt watch/regarde task
if (this.flags.run){
runner.run(data, done);
return;
}
server.start(data, finished.bind(done));
});
};
function finished(code){ return this(code === 0); }