ui5-test-runner
Version:
Standalone test runner for UI5
81 lines (70 loc) • 1.51 kB
JavaScript
let browserio
require('./browser')({
metadata: {
name: 'webdriverio',
options: [
'visible',
['browser', 'chrome', 'firefox'],
'binary',
'viewport',
'language',
'unsecure'
]
},
async capabilities ({ settings, options }) {
return {
modules: ['webdriverio'],
screenshot: '.png',
scripts: true,
traces: []
}
},
async screenshot ({ filename }) {
if (browserio) {
await browserio.saveScreenshot(filename)
return true
}
},
async beforeExit () {
if (browserio) {
await browserio.deleteSession()
}
},
async run ({
settings: { url, scripts, modules },
options,
consoleWriter,
networkWriter
}) {
const { remote } = require(modules.webdriverio)
const [browserOptions, args] = {
chrome: [
'goog:chromeOptions',
options.chromeArgs()
],
firefox: [
'moz:firefoxOptions',
options.visible ? [] : ['-headless']
]
}[options.browser]
browserio = await remote({
capabilities: {
browserName: options.browser,
webSocketUrl: true,
[browserOptions]: {
args,
binary: options.binary
}
}
})
if (scripts && scripts.length) {
for (const script of scripts) {
await browserio.scriptAddPreloadScript({
functionDeclaration: `() => ${script}`
})
}
}
await browserio.url(url)
}
})