mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-21 06:39:56 -06:00
361 lines
10 KiB
JavaScript
361 lines
10 KiB
JavaScript
// Autogenerated by Nightwatch
|
|
// Refer to the online docs for more details: https://nightwatchjs.org/gettingstarted/configuration/
|
|
|
|
const path = require('path')
|
|
const deepmerge = require('deepmerge')
|
|
|
|
const Services = {}
|
|
loadServices()
|
|
const VUE_DEV_SERVER_URL = process.env.VUE_DEV_SERVER_URL
|
|
const BROWSERSTACK_USER = process.env.BROWSERSTACK_USER
|
|
const BROWSERSTACK_KEY = process.env.VUE_DEV_SERVER_URL
|
|
const userOptions = JSON.parse(process.env.VUE_NIGHTWATCH_USER_OPTIONS || '{}')
|
|
const concurrentMode = process.env.VUE_NIGHTWATCH_CONCURRENT === '1'
|
|
const useSelenium = process.env.VUE_NIGHTWATCH_USE_SELENIUM === '1'
|
|
const startHeadless = process.env.VUE_NIGHTWATCH_HEADLESS === '1'
|
|
const chromeArgs = []
|
|
const geckoArgs = []
|
|
|
|
if (startHeadless) {
|
|
chromeArgs.push('headless')
|
|
geckoArgs.push('--headless')
|
|
}
|
|
|
|
// _ _ _ _ _ _ _
|
|
// | \ | |(_) | | | | | | | |
|
|
// | \| | _ __ _ | |__ | |_ __ __ __ _ | |_ ___ | |__
|
|
// | . ` || | / _` || '_ \ | __|\ \ /\ / / / _` || __| / __|| '_ \
|
|
// | |\ || || (_| || | | || |_ \ V V / | (_| || |_ | (__ | | | |
|
|
// \_| \_/|_| \__, ||_| |_| \__| \_/\_/ \__,_| \__| \___||_| |_|
|
|
// __/ |
|
|
// |___/
|
|
|
|
const defaultSettings = {
|
|
// An array of folders (excluding subfolders) where your tests are located;
|
|
// if this is not specified, the test source must be passed as the second argument to the test runner.
|
|
src_folders: ['tests/e2e/specs'],
|
|
|
|
// See https://nightwatchjs.org/guide/working-with-page-objects/
|
|
page_objects_path: 'tests/e2e/page-objects',
|
|
|
|
// See https://nightwatchjs.org/guide/extending-nightwatch/#writing-custom-commands
|
|
custom_commands_path: 'tests/e2e/custom-commands',
|
|
|
|
// See https://nightwatchjs.org/guide/extending-nightwatch/#writing-custom-assertions
|
|
custom_assertions_path: 'tests/e2e/custom-assertions',
|
|
|
|
// See https://nightwatchjs.org/guide/#external-globals
|
|
globals_path: path.resolve('tests/e2e/globals.js'),
|
|
|
|
output_folder: 'tests/e2e/reports',
|
|
|
|
webdriver: {},
|
|
|
|
test_workers: {
|
|
enabled: concurrentMode,
|
|
workers: 'auto'
|
|
},
|
|
|
|
test_settings: {
|
|
default: {
|
|
disable_error_log: false,
|
|
launch_url: `${VUE_DEV_SERVER_URL}`,
|
|
|
|
screenshots: {
|
|
enabled: false,
|
|
path: 'screens',
|
|
on_failure: true
|
|
},
|
|
|
|
desiredCapabilities: {
|
|
browserName: 'firefox'
|
|
},
|
|
|
|
webdriver: {
|
|
start_process: true,
|
|
server_path: Services.geckodriver ? Services.geckodriver.path : ''
|
|
}
|
|
},
|
|
|
|
safari: {
|
|
desiredCapabilities: {
|
|
browserName: 'safari',
|
|
alwaysMatch: {
|
|
acceptInsecureCerts: false
|
|
}
|
|
},
|
|
webdriver: {
|
|
start_process: true,
|
|
server_path: '/usr/bin/safaridriver'
|
|
}
|
|
},
|
|
|
|
firefox: {
|
|
desiredCapabilities: {
|
|
browserName: 'firefox',
|
|
alwaysMatch: {
|
|
// Enable this if you encounter unexpected SSL certificate errors in Firefox
|
|
// acceptInsecureCerts: true,
|
|
'moz:firefoxOptions': {
|
|
args: geckoArgs
|
|
}
|
|
}
|
|
},
|
|
webdriver: {
|
|
start_process: true,
|
|
server_path: Services.geckodriver ? Services.geckodriver.path : '',
|
|
cli_args: [
|
|
// very verbose geckodriver logs
|
|
// '-vv'
|
|
]
|
|
}
|
|
},
|
|
|
|
chrome: {
|
|
desiredCapabilities: {
|
|
browserName: 'chrome',
|
|
'goog:chromeOptions': {
|
|
// More info on Chromedriver: https://sites.google.com/a/chromium.org/chromedriver/
|
|
//
|
|
// w3c:false tells Chromedriver to run using the legacy JSONWire protocol (not required in Chrome 78)
|
|
w3c: true,
|
|
args: chromeArgs
|
|
}
|
|
},
|
|
|
|
webdriver: {
|
|
start_process: true,
|
|
server_path: Services.chromedriver ? Services.chromedriver.path : '',
|
|
cli_args: [
|
|
// --verbose
|
|
]
|
|
}
|
|
},
|
|
|
|
edge: {
|
|
desiredCapabilities: {
|
|
browserName: 'MicrosoftEdge',
|
|
'ms:edgeOptions': {
|
|
w3c: true,
|
|
// More info on EdgeDriver: https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/capabilities-edge-options
|
|
args: [
|
|
// '--headless'
|
|
]
|
|
}
|
|
},
|
|
|
|
webdriver: {
|
|
start_process: true,
|
|
// Download msedgedriver from https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/
|
|
// and set the location below:
|
|
server_path: '',
|
|
cli_args: [
|
|
// --verbose
|
|
]
|
|
}
|
|
},
|
|
|
|
/// ///////////////////////////////////////////////////////////////////////////////
|
|
// Configuration for when using cucumber-js (https://cucumber.io) |
|
|
// |
|
|
// It uses the bundled examples inside the nightwatch examples folder; feel free |
|
|
// to adapt this to your own project needs |
|
|
/// ///////////////////////////////////////////////////////////////////////////////
|
|
'cucumber-js': {
|
|
src_folders: ['examples/cucumber-js/features/step_definitions'],
|
|
|
|
test_runner: {
|
|
// set cucumber as the runner
|
|
type: 'cucumber',
|
|
|
|
// define cucumber specific options
|
|
options: {
|
|
// set the feature path
|
|
feature_path: 'node_modules/nightwatch/examples/cucumber-js/*/*.feature'
|
|
|
|
// start the webdriver session automatically (enabled by default)
|
|
// auto_start_session: true
|
|
|
|
// use parallel execution in Cucumber
|
|
// parallel: 2 // set number of workers to use (can also be defined in the cli as --parallel 2
|
|
}
|
|
}
|
|
},
|
|
|
|
/// ///////////////////////////////////////////////////////////////////////////////
|
|
// Configuration for when using the browserstack.com cloud service |
|
|
// |
|
|
// Please set the username and access key by setting the environment variables: |
|
|
// - BROWSERSTACK_USER |
|
|
// - BROWSERSTACK_KEY |
|
|
// .env files are supported |
|
|
/// ///////////////////////////////////////////////////////////////////////////////
|
|
browserstack: {
|
|
selenium: {
|
|
host: 'hub-cloud.browserstack.com',
|
|
port: 443
|
|
},
|
|
// More info on configuring capabilities can be found on:
|
|
// https://www.browserstack.com/automate/capabilities?tag=selenium-4
|
|
desiredCapabilities: {
|
|
'bstack:options': {
|
|
userName: `${BROWSERSTACK_USER}`,
|
|
accessKey: `${BROWSERSTACK_KEY}`
|
|
}
|
|
},
|
|
|
|
disable_error_log: true,
|
|
webdriver: {
|
|
timeout_options: {
|
|
timeout: 15000,
|
|
retry_attempts: 3
|
|
},
|
|
keep_alive: true,
|
|
start_process: false
|
|
}
|
|
},
|
|
|
|
'browserstack.local': {
|
|
extends: 'browserstack',
|
|
desiredCapabilities: {
|
|
'browserstack.local': true
|
|
}
|
|
},
|
|
|
|
'browserstack.chrome': {
|
|
extends: 'browserstack',
|
|
desiredCapabilities: {
|
|
browserName: 'chrome',
|
|
chromeOptions: {
|
|
w3c: true
|
|
}
|
|
}
|
|
},
|
|
|
|
'browserstack.firefox': {
|
|
extends: 'browserstack',
|
|
desiredCapabilities: {
|
|
browserName: 'firefox'
|
|
}
|
|
},
|
|
|
|
'browserstack.ie': {
|
|
extends: 'browserstack',
|
|
desiredCapabilities: {
|
|
browserName: 'internet explorer',
|
|
browserVersion: '11.0'
|
|
}
|
|
},
|
|
|
|
'browserstack.safari': {
|
|
extends: 'browserstack',
|
|
desiredCapabilities: {
|
|
browserName: 'safari'
|
|
}
|
|
},
|
|
|
|
'browserstack.local_chrome': {
|
|
extends: 'browserstack.local',
|
|
desiredCapabilities: {
|
|
browserName: 'chrome'
|
|
}
|
|
},
|
|
|
|
'browserstack.local_firefox': {
|
|
extends: 'browserstack.local',
|
|
desiredCapabilities: {
|
|
browserName: 'firefox'
|
|
}
|
|
},
|
|
/// ///////////////////////////////////////////////////////////////////////////////
|
|
// Configuration for when using the Selenium service, either locally or remote, |
|
|
// like Selenium Grid |
|
|
/// ///////////////////////////////////////////////////////////////////////////////
|
|
selenium_server: {
|
|
// Selenium Server is running locally and is managed by Nightwatch
|
|
selenium: {
|
|
start_process: true,
|
|
port: 4444,
|
|
server_path: (Services.seleniumServer ? Services.seleniumServer.path : ''),
|
|
cli_args: {
|
|
'webdriver.gecko.driver': (Services.geckodriver ? Services.geckodriver.path : ''),
|
|
'webdriver.chrome.driver': (Services.chromedriver ? Services.chromedriver.path : '')
|
|
}
|
|
}
|
|
},
|
|
|
|
'selenium.chrome': {
|
|
extends: 'selenium_server',
|
|
desiredCapabilities: {
|
|
browserName: 'chrome',
|
|
chromeOptions: {
|
|
w3c: true
|
|
}
|
|
}
|
|
},
|
|
|
|
'selenium.firefox': {
|
|
extends: 'selenium_server',
|
|
desiredCapabilities: {
|
|
browserName: 'firefox',
|
|
'moz:firefoxOptions': {
|
|
args: geckoArgs
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
const baseSettings = deepmerge(defaultSettings, webdriverServerSettings())
|
|
|
|
module.exports = deepmerge(baseSettings, adaptUserSettings(userOptions))
|
|
|
|
function adaptUserSettings (settings) {
|
|
// The path to nightwatch external globals file needs to be made absolute
|
|
// if it is supplied in an additional config file, due to merging of config files
|
|
if (settings.globals_path) {
|
|
settings.globals_path = path.resolve(settings.globals_path)
|
|
}
|
|
|
|
return settings
|
|
}
|
|
|
|
function webdriverServerSettings () {
|
|
if (useSelenium) {
|
|
return {
|
|
selenium: {
|
|
start_process: true,
|
|
host: '127.0.0.1',
|
|
port: 4444,
|
|
server_path: require('selenium-server').path,
|
|
cli_args: {
|
|
'webdriver.chrome.driver': Services.chromedriver.path,
|
|
'webdriver.gecko.driver': Services.geckodriver.path
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return {
|
|
webdriver: {
|
|
start_process: true,
|
|
port: 9515,
|
|
server_path: Services.chromedriver.path
|
|
}
|
|
}
|
|
}
|
|
|
|
function loadServices () {
|
|
try {
|
|
Services.seleniumServer = require('selenium-server')
|
|
} catch (err) {}
|
|
|
|
try {
|
|
Services.chromedriver = require('chromedriver')
|
|
} catch (err) {}
|
|
|
|
try {
|
|
Services.geckodriver = require('geckodriver')
|
|
} catch (err) {}
|
|
}
|