From: Eduardo San Martin Morote Date: Thu, 9 Jun 2022 10:16:29 +0000 (+0200) Subject: test: run remote e2e tests X-Git-Tag: v4.1.0~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb97a332e441932f63c716cac3818bd97de97be3;p=thirdparty%2Fvuejs%2Frouter.git test: run remote e2e tests --- diff --git a/.gitignore b/.gitignore index c1584c32..bc9ecae6 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ browserstack.err debug.log yalc.lock .yalc +local.log +_selenium-server.log diff --git a/packages/router/e2e/local.runner.js b/packages/router/e2e/local.runner.js new file mode 100644 index 00000000..d9a0d405 --- /dev/null +++ b/packages/router/e2e/local.runner.js @@ -0,0 +1,52 @@ +require('dotenv').config() +const Nightwatch = require('nightwatch') +const browserstack = require('browserstack-local') +const path = require('path') + +const { BROWSERSTACK_ACCESS_KEY } = process.env +if (!BROWSERSTACK_ACCESS_KEY) { + throw new Error( + ` +(ONLY FOR MAINTAINERS) +BROWSERSTACK_ACCESS_KEY is not set. Did you create the .env file? +` + ) +} + +try { + require.main.filename = path.resolve( + __dirname, + '../../../node_modules/.bin/nightwatch' + ) + + // Code to start browserstack local before start of test + console.log('Connecting local') + + const bs_local = new browserstack.Local() + Nightwatch.bs_local = bs_local + + bs_local.start( + { key: process.env.BROWSERSTACK_ACCESS_KEY }, + function (error) { + if (error) throw error + + console.log('Connected. Now testing...') + Nightwatch.cli(function (argv) { + Nightwatch.CliRunner(argv) + .setup() + .runTests() + .catch(err => { + throw err + }) + .finally(() => { + // Code to stop browserstack local after end of single test + bs_local.stop(function () {}) + }) + }) + } + ) +} catch (ex) { + console.log('There was an error while starting the test runner:\n\n') + process.stderr.write(ex.stack + '\n') + process.exit(2) +} diff --git a/packages/router/nightwatch.conf.js b/packages/router/nightwatch.conf.js index fac39ff3..c729dadb 100644 --- a/packages/router/nightwatch.conf.js +++ b/packages/router/nightwatch.conf.js @@ -16,7 +16,7 @@ module.exports = { // 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: [], + src_folders: ['e2e/specs'], // See https://nightwatchjs.org/guide/working-with-page-objects/using-page-objects.html page_objects_path: ['node_modules/nightwatch/examples/pages/'], @@ -50,7 +50,7 @@ module.exports = { browserName: 'chrome', 'goog:chromeOptions': { w3c: true, - args: ['--headless'], + args: ['window-size=1280,800', 'headless'], }, }, @@ -206,14 +206,6 @@ module.exports = { }, }, - 'browserstack.ie': { - extends: 'browserstack', - desiredCapabilities: { - browserName: 'internet explorer', - browserVersion: '11.0', - }, - }, - 'browserstack.safari': { extends: 'browserstack', desiredCapabilities: { @@ -232,6 +224,35 @@ module.exports = { extends: 'browserstack.local', desiredCapabilities: { browserName: 'firefox', + browserVersion: '58.0', + }, + }, + + // Use https://www.browserstack.com/automate/capabilities?tag=selenium-4 to generate configs + + edge_pre_chrome: { + extends: 'browserstack.local', + desiredCapabilities: { + browserName: 'Edge', + browserVersion: '18.0', + }, + }, + + android5: { + extends: 'browserstack.local', + desiredCapabilities: { + deviceName: 'Samsung Galaxy S6', + realMobile: 'true', + osVersion: '5.0', + }, + }, + + ios10: { + extends: 'browserstack.local', + desiredCapabilities: { + deviceName: 'iPhone 7', + realMobile: 'true', + osVersion: '10', }, }, diff --git a/packages/router/package.json b/packages/router/package.json index a56e4997..b1f4fd36 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -70,7 +70,7 @@ "test:e2e:headless": "node e2e/runner.js -e chrome-headless --skiptags no-headless", "test:e2e:native": "node e2e/runner.js -e chrome --tag no-headless", "test:e2e:ci": "node e2e/runner.js -e firefox --retries 2", - "test:e2e:bs": "node e2e/runner.js --local -e edge_pre_chrome,android44 -c e2e/nightwatch.browserstack.js --tag browserstack" + "test:e2e:bs": "node e2e/local.runner.js -e edge_pre_chrome,android44 --tag browserstack" }, "gitHooks": { "pre-commit": "lint-staged",