-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathprotractor.browserstack.conf.js
92 lines (83 loc) · 2.27 KB
/
protractor.browserstack.conf.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/* eslint-disable */
const { SpecReporter } = require('jasmine-spec-reporter');
const browserstack = require('browserstack-local');
const protractorImageComparison = require('protractor-image-comparison');
const getSpecs = (listSpec) => {
if (listSpec) {
return listSpec.split(',');
}
return ['components/**/*.functional-spec.js'];
};
exports.config = {
allScriptsTimeout: 120000,
specs: getSpecs(process.env.PROTRACTOR_SPECS),
seleniumAddress: 'http://hub-cloud.browserstack.com/wd/hub',
SELENIUM_PROMISE_MANAGER: false,
commonCapabilities: {
'browserstack.user': process.env.BROWSER_STACK_USERNAME,
'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY,
'browserstack.debug': true,
'browserstack.local': true,
build: 'Functional',
name: 'Functional tests'
},
multiCapabilities: [
{
browserName: 'Chrome',
browser_version: '64'
},
{
browserName: 'Firefox',
browser_version: '58'
},
{
os: 'OS X',
os_version: 'El Capitan',
browserName: 'Safari',
browser_version: '9.1'
},
{
browserName: 'Edge'
},
{
browserName: 'IE',
browser_version: '11'
}
],
beforeLaunch: () => {
return new Promise((resolve, reject) => {
exports.bs_local = new browserstack.Local();
exports.bs_local.start({ key: exports.config.commonCapabilities['browserstack.key'] }, (error) => {
if (error) {
return reject(error);
}
resolve();
});
});
},
onPrepare: () => {
browser.ignoreSynchronization = true;
browser.protractorImageComparison = new protractorImageComparison({
baselineFolder: './baseline/',
screenshotPath: './.tmp/',
autoSaveBaseline: true,
debug: false
});
jasmine.getEnv().addReporter(new SpecReporter({
spec: { displayStacktrace: true }
}));
return browser.getProcessedConfig().then((cap) => {
browser.browserName = cap.capabilities.browserName;
});
},
afterLaunch: () => {
return new Promise((resolve) => {
exports.bs_local.stop(resolve);
});
}
};
exports.config.multiCapabilities.forEach((caps) => {
for (const i in exports.config.commonCapabilities) {
caps[i] = caps[i] || exports.config.commonCapabilities[i];
}
});