Use selenium-standalone-service to automatically start and stop Selenium when running the test suite.

This commit is contained in:
Aaron Dodson
2021-06-14 17:27:01 +00:00
parent e65a396809
commit df7da795a3
4 changed files with 160 additions and 12 deletions

144
package-lock.json generated
View File

@@ -414,6 +414,15 @@
"integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==",
"dev": true
},
"@types/fs-extra": {
"version": "9.0.11",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz",
"integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/http-cache-semantics": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz",
@@ -456,6 +465,15 @@
"@types/node": "*"
}
},
"@types/selenium-standalone": {
"version": "6.15.2",
"resolved": "https://registry.npmjs.org/@types/selenium-standalone/-/selenium-standalone-6.15.2.tgz",
"integrity": "sha512-Jnt4AHHcUOPGuZ5cJRYfP3IpPalNc/o1BmFvuFFmLtU2PtvEGvyyJPdpErqzZDxsP8E4yjTst0GL+QMJiEWuBA==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/vinyl": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.4.tgz",
@@ -593,6 +611,121 @@
"@wdio/utils": "7.6.0"
}
},
"@wdio/selenium-standalone-service": {
"version": "6.12.1",
"resolved": "https://registry.npmjs.org/@wdio/selenium-standalone-service/-/selenium-standalone-service-6.12.1.tgz",
"integrity": "sha512-9R5iTAb5p7XEWfn9WkiH8K3tgArmUJ0U3CcOQCeaHQBZks5DhNQv6ZQIodnIDyWHjoEfwnF9n+/UKsfPOk4rCQ==",
"dev": true,
"requires": {
"@types/fs-extra": "^9.0.1",
"@types/selenium-standalone": "^6.15.2",
"@wdio/config": "6.12.1",
"@wdio/logger": "6.10.10",
"fs-extra": "^9.0.1",
"selenium-standalone": "^6.22.1"
},
"dependencies": {
"@wdio/config": {
"version": "6.12.1",
"resolved": "https://registry.npmjs.org/@wdio/config/-/config-6.12.1.tgz",
"integrity": "sha512-V5hTIW5FNlZ1W33smHF4Rd5BKjGW2KeYhyXDQfXHjqLCeRiirZ9fABCo9plaVQDnwWSUMWYaAaIAifV82/oJCQ==",
"dev": true,
"requires": {
"@wdio/logger": "6.10.10",
"deepmerge": "^4.0.0",
"glob": "^7.1.2"
}
},
"@wdio/logger": {
"version": "6.10.10",
"resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-6.10.10.tgz",
"integrity": "sha512-2nh0hJz9HeZE0VIEMI+oPgjr/Q37ohrR9iqsl7f7GW5ik+PnKYCT9Eab5mR1GNMG60askwbskgGC1S9ygtvrSw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"loglevel": "^1.6.0",
"loglevel-plugin-prefix": "^0.8.4",
"strip-ansi": "^6.0.0"
}
},
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dev": true,
"requires": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"@wdio/types": {
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/@wdio/types/-/types-7.6.0.tgz",
@@ -1146,6 +1279,12 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
"dev": true
},
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
@@ -8539,6 +8678,11 @@
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
"typescript": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz",
"integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw=="
},
"typescript-closure-tools": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/typescript-closure-tools/-/typescript-closure-tools-0.0.7.tgz",

View File

@@ -40,12 +40,8 @@
"publish:beta": "gulp publishBeta",
"recompile": "gulp recompile",
"release": "gulp gitCreateRC",
"test": "concurrently 'npm run test:prepare' 'sleep 5 && npm run test:run'",
"test:generators": "concurrently 'npm run test:prepare' 'sleep 5 && tests/scripts/run_generators.sh'",
"test:prepare": "npm run test:setupselenium && npm run test:startselenium",
"test:run": "tests/run_all_tests.sh",
"test:setupselenium": "selenium-standalone install --config=./tests/scripts/selenium-config.js",
"test:startselenium": "selenium-standalone start --config=./tests/scripts/selenium-config.js",
"test": "tests/run_all_tests.sh",
"test:generators": "tests/scripts/run_generators.sh",
"test:compile:advanced": "gulp buildAdvancedCompilationTest",
"typings": "gulp typings",
"updateGithubPages": "gulp gitUpdateGithubPages"
@@ -65,6 +61,7 @@
"@blockly/dev-tools": "^2.0.1",
"@blockly/theme-dark": "^1.0.0",
"@blockly/theme-modern": "^2.1.1",
"@wdio/selenium-standalone-service": "^6.11.0",
"babel-eslint": "^10.1.0",
"chai": "^4.2.0",
"clang-format": "^1.5.0",
@@ -92,6 +89,7 @@
"yargs": "^16.0.3"
},
"dependencies": {
"jsdom": "15.2.1"
"jsdom": "15.2.1",
"typescript": "^4.3.2"
}
}

View File

@@ -40,14 +40,18 @@ async function runLangGeneratorInBrowser(browser, filename, codegenFn) {
async function runGeneratorsInBrowser() {
var options = {
capabilities: {
browserName: 'firefox'
browserName: 'chrome',
},
path: '/wd/hub'
services: ['selenium-standalone']
};
// Run in headless mode on Github Actions.
if (process.env.CI) {
options.capabilities['moz:firefoxOptions'] = {
args: ['-headless']
options.capabilities['goog:chromeOptions'] = {
args: ['--headless', '--no-sandbox', '--disable-dev-shm-usage', '--allow-file-access-from-files']
};
} else {
options.capabilities['goog:chromeOptions'] = {
args: ['--allow-file-access-from-files']
};
}

View File

@@ -22,7 +22,9 @@ async function runMochaTestsInBrowser() {
capabilities: {
browserName: 'chrome'
},
path: '/wd/hub'
services: [
['selenium-standalone']
]
};
// Run in headless mode on Github Actions.
if (process.env.CI) {