-
Notifications
You must be signed in to change notification settings - Fork 150
/
Copy pathwdio.config.js
123 lines (110 loc) · 2.46 KB
/
wdio.config.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
require('dotenv').config()
require('@babel/register')({
rootMode: 'upward'
})
const { join } = require('path')
const { cwd } = require('process')
const puppeteer = require('puppeteer')
const {
PORT = 4567,
SAUCE_ACCESS_KEY,
SAUCE_BUILD_NUMBER,
SAUCE_ENABLED,
SAUCE_USERNAME
} = process.env
/**
* Browsers for local tests
*
* @type {RemoteCapabilities}
*/
const capabilitiesLocal = [
{
browserName: 'chrome',
'goog:chromeOptions': {
args: ['--headless=new'],
binary: puppeteer.executablePath()
}
}
]
/**
* Browsers for Sauce Labs tests
*
* @type {RemoteCapabilities}
*/
const capabilitiesSauce = [
{
browserName: 'chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
build: SAUCE_BUILD_NUMBER
}
},
{
browserName: 'firefox',
browserVersion: '55',
platformName: 'Windows 10',
'sauce:options': {
build: SAUCE_BUILD_NUMBER
}
},
{
browserName: 'internet explorer',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
build: SAUCE_BUILD_NUMBER
}
}
]
/**
* WebdriverIO config
*
* @type {Testrunner}
*/
exports.config = {
user: SAUCE_USERNAME,
key: SAUCE_ACCESS_KEY,
// Use DevTools prototype for Puppeteer
automationProtocol: SAUCE_ENABLED === 'true'
? 'webdriver'
: 'devtools',
baseUrl: `http://localhost:${PORT}`,
capabilities: SAUCE_ENABLED === 'true'
? capabilitiesSauce
: capabilitiesLocal,
framework: 'mocha',
outputDir: join(cwd(), 'logs'),
reporters: ['spec'],
services: [
/**
* Web server options
*
* @type {[string, StaticServerOptions]}
*/
['static-server', {
folders: [
{ mount: '/', path: join(cwd(), 'examples') },
{ mount: '/dist/', path: join(cwd(), 'dist') }
],
port: PORT
}],
/**
* Browser testing options
*
* @type {[string, SauceServiceConfig]}
*/
['sauce', {
// Optionally connect to Sauce Labs
sauceConnect: SAUCE_ENABLED === 'true'
}]
],
specs: [join(cwd(), 'test/integration/**/*.js')],
waitforTimeout: 30 * 10000
}
/**
* @typedef {import('@wdio/types').Options.Testrunner} Testrunner
* @typedef {import('@wdio/types').Capabilities.RemoteCapabilities} RemoteCapabilities
* @typedef {import('@wdio/static-server-service').StaticServerOptions} StaticServerOptions
* @typedef {import('@wdio/sauce-service').SauceServiceConfig} SauceServiceConfig
*/