Automating test runners using Gulp
Example how to set up and configure Gulp to run the following tasks - HTTP web server, Karma test runner, WebDriver, Protractor.
Install Gulp and Protractor globally
npm install -g gulp protractor
Create a package.json
npm init
Install dependencies
npm install connect gulp-load-plugins gulp-protractor karma karma-chrome-launcher karma-jasmine -—save-dev
Create Karma configuration file named karma.conf.js
module.exports = function () {
return {
frameworks: ['jasmine'],
files: [
'lib/angular/angular.js',
'lib/angular/angular-mocks.js',
'src/app.js',
'test/unit/appSpec.js'
],
autoWatch: true,
browsers: ['Chrome']
};
};
Create a Protractor configuration file named protractor.conf.js
exports.config = {
seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.41.0.jar',
specs : ['test/e2e/appSpec.js'],
jasmineNodeOpts : {
showColors : true,
defaultTimeoutInterval: 30000
}
};
Create a file named gulpfile.js
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
gulp.task('webdriver_update', $.protractor.webdriver_update);
gulp.task('connect', function() {
var connect = require('connect');
var app = connect().use(connect.static('src'));
$.server = require('http').createServer(app).listen(8000);
});
gulp.task('test', function(done) {
var karma = require('karma').server;
var karmaConf = require('./karma.conf.js')();
karma.start(karmaConf, done);
});
gulp.task('e2e', ['connect', 'webdriver_update'], function(done) {
gulp.src(['test/e2e/appSpec.js'])
.pipe($.protractor.protractor({
configFile: './protractor.conf.js',
}))
.on('end', function() {
$.server.close();
done();
});
});
Run unit tests
gulp test
Run the end-to-end tests
gulp e2e
Post by: Anonymoussc (@anonymoussc)Television is simply automated daydreaming. - Lee Loevinger