diff --git a/scripts/snapshot/ionic.snapshot.js b/scripts/snapshot/ionic.snapshot.js index 2e97182068..d6a3d65e83 100644 --- a/scripts/snapshot/ionic.snapshot.js +++ b/scripts/snapshot/ionic.snapshot.js @@ -6,7 +6,7 @@ var IonicSnapshot = function(options) { var _ = require('lodash'); var request = require('request'); var colors = require('gulp-util').colors; - var log = console.log.bind(console, colors.cyan('Snapshot') + ':'); + var log = console.log.bind(console); var IonicReporter = function(options) { var self = this; @@ -15,17 +15,18 @@ var IonicSnapshot = function(options) { self.domain = options.domain || 'ionic-snapshot-go.appspot.com'; self.groupId = options.groupId || 'test_group'; self.appId = options.appId || 'test_app'; + self.sleepBetweenSpecs = options.sleepBetweenSpecs || 750; self.testId = browser.params.test_id || 'test_id'; self.platformId = browser.params.platform_id; self.platformIndex = browser.params.platform_index; self.platformCount = browser.params.platform_count; - self.sleepBetweenSpecs = options.sleepBetweenSpecs || 750; self.width = browser.params.width || -1; self.height = browser.params.height || -1; - self.highestMismatch = 0; + self.screenshotRequestPromises = []; self.results = {}; self.mismatches = []; + self.highestMismatch = 0; self.flow = protractor.promise.controlFlow(); @@ -78,7 +79,9 @@ var IonicSnapshot = function(options) { } }); - log('init:', _.pick(self, ['testId', 'appId', 'width', 'height', 'platformId'])); + log(colors.green('Start Snapshot:'), + self.groupId, self.appId, self.testId, self.platformId, '(' + self.width + 'x' + self.height + ')'); + }; IonicReporter.prototype.reportSpecResults = function(spec) { @@ -101,7 +104,6 @@ var IonicSnapshot = function(options) { browser.takeScreenshot().then(function(pngBase64) { var specIdString = '[' + (spec.id+1) + '/' + self.testData.total_specs + ']'; - log(specIdString, spec.getFullName()); self.testData.spec_index = spec.id; self.testData.description = spec.getFullName(); @@ -124,11 +126,11 @@ var IonicSnapshot = function(options) { var mismatch = Math.round(rspData.Mismatch * 100) / 100; if (rspData.Mismatch > 1) { - log(specIdString, colors.red('Mismatch: ' + mismatch + '%')); + log(specIdString, colors.red('Mismatch: ' + mismatch + '%'), colors.gray(spec.getFullName())); } else if (rspData.Mismatch > 0) { - log(specIdString, colors.yellow('Mismatch: ' + mismatch + '%')); + log(specIdString, colors.yellow('Mismatch: ' + mismatch + '%'), colors.gray(spec.getFullName())); } else { - log(specIdString, colors.green('Mismatch: ' + mismatch + '%')); + log(specIdString, colors.green('Mismatch: ' + mismatch + '%'), colors.gray(spec.getFullName())); } var resultKey = (((rspData.Mismatch * 1000) + 1000000) + '').split('.')[0] + '-' + spec.id; diff --git a/scripts/snapshot/snapshot.config.js b/scripts/snapshot/snapshot.config.js index 6e9bd2b84b..b28ef43c59 100644 --- a/scripts/snapshot/snapshot.config.js +++ b/scripts/snapshot/snapshot.config.js @@ -2,11 +2,29 @@ exports.config = { groupId: 'ionic2', + appId: 'snapshots', - //domain: 'localhost:8080', + domain: 'ionic-snapshot-go.appspot.com', + //domain: 'localhost:8080', + specs: 'dist/e2e/**/*e2e.js', //specs: 'dist/e2e/action-menu/**/*e2e.js', + + sleepBetweenSpecs: 1000, + + platformDefauls: { + browser: 'chrome', + platform: 'linux', + params: { + platform_id: 'chrome_local', + platform_index: 0, + platform_count: 1, + width: 400, + height: 800 + } + }, + accessKey: process.env.IONIC_SNAPSHOT_KEY }; diff --git a/scripts/snapshot/snapshot.task.js b/scripts/snapshot/snapshot.task.js index 8362714de9..5fb111992c 100644 --- a/scripts/snapshot/snapshot.task.js +++ b/scripts/snapshot/snapshot.task.js @@ -1,17 +1,19 @@ -var _ = require('lodash'); -var http = require('http'); -var connect = require('connect'); -var serveStatic = require('serve-static'); -var cp = require('child_process'); -var path = require('canonical-path'); -var uuid = require('node-uuid'); - -var projectRoot = path.resolve(__dirname, '../..'); - module.exports = function(gulp, argv, buildConfig) { + var snapshotConfig = require('./snapshot.config').config; + var _ = require('lodash'); + var http = require('http'); + var connect = require('connect'); + var serveStatic = require('serve-static'); + var cp = require('child_process'); + var path = require('canonical-path'); + var uuid = require('node-uuid'); + + var projectRoot = path.resolve(__dirname, '../..'); var protractorHttpServer; + var snapshotValues = _.merge(snapshotConfig.platformDefauls, argv); + gulp.task('protractor-server', function() { var app = connect().use(serveStatic(projectRoot + '/' + buildConfig.dist)); // serve everything that is static protractorHttpServer = http.createServer(app).listen(buildConfig.protractorPort); @@ -23,20 +25,9 @@ module.exports = function(gulp, argv, buildConfig) { snapshot(done, protractorConfigFile); }); - var snapshotValues = _.merge({ - browser: 'chrome', - platform: 'linux', - params: { - platform_id: 'chrome_local', - platform_index: 0, - platform_count: 1, - width: 400, - height: 800, - test_id: uuid.v4().split('-')[0] - } - }, argv); - function snapshot(done, protractorConfigFile) { + snapshotValues.params.test_id = uuid.v4().split('-')[0]; + var protractorArgs = [ '--browser <%= browser %>', '--platform <%= platform %>', @@ -56,8 +47,6 @@ module.exports = function(gulp, argv, buildConfig) { } function protractor(done, args) { - console.log('Start protractor:', snapshotValues.params.test_id); - var child = cp.spawn('protractor', args, { stdio: [process.stdin, process.stdout, 'pipe'] }); @@ -76,9 +65,7 @@ module.exports = function(gulp, argv, buildConfig) { } function e2ePublish(testId) { - var snapshotConfig = require('./snapshot.config').config; snapshotConfig.testId = testId; - require('../e2e/e2e-publish')(snapshotConfig); }