diff options
| author | Julie | 2014-01-07 11:51:32 -0800 |
|---|---|---|
| committer | Jeff Cross | 2014-01-09 17:21:46 -0800 |
| commit | 2ed4ad55022f6e5519617a3797649fe1e68f3734 (patch) | |
| tree | 0e7672b6e47701f076d6247202263e043a616b02 /lib | |
| parent | 1d2a388830d95ae1a1f9b577fd0891a2e1f31bcd (diff) | |
| download | angular.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.js | 8 | ||||
| -rw-r--r-- | lib/grunt/utils.js | 32 |
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'); |
