angular-cn/protractor-perf-shared.js

75 lines
1.9 KiB
JavaScript

// load traceur runtime as our tests are written in es6
require('traceur/bin/traceur-runtime.js');
var cloudReporterConfig;
try {
cloudReporterConfig = require('./perf-cloud-secret.js');
} catch (e) {
cloudReporterConfig = null;
}
var config = exports.config = {
specs: ['dist/cjs/**/*_perf.js'],
params: {
benchmark: {
// size of the sample to take
sampleSize: 20,
timeout: 20000,
metrics: ['script', 'render', 'gcAmount', 'gcAmountInScript', 'gcTime'],
// forces a gc after every run
forceGc: false,
reporters: [
require('./dist/cjs/tools/benchpress/src/console_reporter.js'),
cloudReporterConfig ? require('./dist/cjs/tools/benchpress/src/cloud_reporter.js') : null,
],
cloudReporter: cloudReporterConfig
}
},
// Disable waiting for Angular as we don't have an integration layer yet...
// TODO(tbosch): Implement a proper debugging API for Ng2.0, remove this here
// and the sleeps in all tests.
onPrepare: function() {
browser.ignoreSynchronization = true;
var _get = browser.get;
var sleepInterval = process.env.TRAVIS ? 5000 : 2000;
browser.get = function() {
var result = _get.apply(this, arguments);
browser.sleep(sleepInterval);
return result;
}
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
// TODO: add real mobile devices via a cloud provider that supports appium
if (process.env.TRAVIS) {
config.capabilities = {
name: 'Dartium',
browserName: 'chrome',
chromeOptions: {
'binary': process.env.DARTIUM,
'args': ['--js-flags=--expose-gc']
},
loggingPrefs: {
performance: 'ALL'
}
};
} else {
config.capabilities = {
browserName: 'chrome',
chromeOptions: {
'args': ['--js-flags=--expose-gc']
},
loggingPrefs: {
performance: 'ALL'
}
};
}