aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJulie2014-01-07 11:51:32 -0800
committerJeff Cross2014-01-09 17:21:46 -0800
commit2ed4ad55022f6e5519617a3797649fe1e68f3734 (patch)
tree0e7672b6e47701f076d6247202263e043a616b02 /lib
parent1d2a388830d95ae1a1f9b577fd0891a2e1f31bcd (diff)
downloadangular.js-2ed4ad55022f6e5519617a3797649fe1e68f3734.tar.bz2
feat(build): add a grunt test for running protractor tests extracted from the docs
Diffstat (limited to 'lib')
-rw-r--r--lib/grunt/plugins.js8
-rw-r--r--lib/grunt/utils.js32
2 files changed, 40 insertions, 0 deletions
diff --git a/lib/grunt/plugins.js b/lib/grunt/plugins.js
index 363b8698..a269cf82 100644
--- a/lib/grunt/plugins.js
+++ b/lib/grunt/plugins.js
@@ -61,6 +61,14 @@ module.exports = function(grunt) {
util.startKarma.call(util, this.data, false, this.async());
});
+ grunt.registerTask('webdriver', 'Update webdriver', function() {
+ util.updateWebdriver.call(util, this.async());
+ });
+
+ grunt.registerMultiTask('runprotractor', 'Run Protractor integration tests', function() {
+ util.startProtractor.call(util, this.data, this.async());
+ });
+
grunt.registerTask('collect-errors', 'Combine stripped error files', function () {
util.collectErrors();
});
diff --git a/lib/grunt/utils.js b/lib/grunt/utils.js
index 51ebcc70..7b772c34 100644
--- a/lib/grunt/utils.js
+++ b/lib/grunt/utils.js
@@ -84,6 +84,38 @@ module.exports = {
},
+ updateWebdriver: function(done){
+ var p = spawn('node', ['node_modules/protractor/bin/webdriver-manager', 'update']);
+ p.stdout.pipe(process.stdout);
+ p.stderr.pipe(process.stderr);
+ p.on('exit', function(code){
+ if(code !== 0) grunt.fail.warn('Webdriver failed to update');
+ done();
+ });
+ },
+
+ startProtractor: function(config, done){
+ var sauceUser = grunt.option('sauceUser');
+ var sauceKey = grunt.option('sauceKey');
+ var tunnelIdentifier = grunt.option('capabilities.tunnel-identifier');
+ var sauceBuild = grunt.option('capabilities.build');
+ var args = ['node_modules/protractor/bin/protractor', config];
+ if (sauceUser) args.push('--sauceUser=' + sauceUser);
+ if (sauceKey) args.push('--sauceKey=' + sauceKey);
+ if (tunnelIdentifier) args.push('--capabilities.tunnel-identifier=' + tunnelIdentifier);
+ if (sauceBuild) args.push('--capabilities.build=' + sauceBuild);
+
+
+ var p = spawn('node', args);
+ p.stdout.pipe(process.stdout);
+ p.stderr.pipe(process.stderr);
+ p.on('exit', function(code){
+ if(code !== 0) grunt.fail.warn('Protractor test(s) failed. Exit code: ' + code);
+ done();
+ });
+ },
+
+
wrap: function(src, name){
src.unshift('src/' + name + '.prefix');
src.push('src/' + name + '.suffix');