Open jason0x43 opened 4 years ago
This is also an issue with browserStack
, at least with Intern 4.x. { "browserName": "safari", "browserVersion": "latest" }
gives an OS/Browser combination invalid
error, whereas { "browserName": "safari", "version": "latest" }
works as intended.
Hey @jason0x43 I created a PR to resolve this at #1117 however I'm unsure how to test to see if it worked. Where am I suppose to look for the driver list? I updated the intern.json
file and ran npm test -- --show-config
and got the output
{
"$schema": "./schemas/config.json",
"bail": false,
"basePath": "/Users/sam/projects/intern/",
"baseline": false,
"benchmark": false,
"browser": {
"plugins": [
{
"script": "tests/support/globalUi.ts"
},
{
"script": "tests/support/browserDom.ts"
}
],
"reporters": [],
"suites": [
"tests/benchmark/example.ts",
"tests/unit/common/lib/Evented.ts",
"tests/unit/common/lib/global.ts",
"tests/unit/common/lib/request.ts",
"tests/unit/common/lib/util.ts",
"tests/unit/core/lib/BenchmarkTest.ts",
"tests/unit/core/lib/Channel.ts",
"tests/unit/core/lib/Deferred.ts",
"tests/unit/core/lib/Environment.ts",
"tests/unit/core/lib/Suite.ts",
"tests/unit/core/lib/Test.ts",
"tests/unit/core/lib/browser/util.ts",
"tests/unit/core/lib/channels/Base.ts",
"tests/unit/core/lib/channels/Http.ts",
"tests/unit/core/lib/channels/WebSocket.ts",
"tests/unit/core/lib/common/ErrorFormatter.ts",
"tests/unit/core/lib/common/console.ts",
"tests/unit/core/lib/common/path.ts",
"tests/unit/core/lib/common/util.ts",
"tests/unit/core/lib/executors/Browser.ts",
"tests/unit/core/lib/executors/Executor.ts",
"tests/unit/core/lib/interfaces/bdd.ts",
"tests/unit/core/lib/interfaces/benchmark.ts",
"tests/unit/core/lib/interfaces/object.ts",
"tests/unit/core/lib/interfaces/tdd.ts",
"tests/unit/core/lib/reporters/Console.ts",
"tests/unit/core/lib/reporters/Dom.ts",
"tests/unit/core/lib/reporters/Html.ts",
"tests/unit/core/loaders/default.ts",
"tests/unit/core/loaders/dojo.ts",
"tests/unit/core/loaders/dojo2.ts",
"tests/unit/core/loaders/esm.ts",
"tests/unit/core/loaders/systemjs.ts"
]
},
"capabilities": {
"idle-timeout": 60,
"name": "intern"
},
"connectTimeout": 30000,
"coverage": [
"!src/browser/**/*.ts",
"src/**/*.ts"
],
"coverageVariable": "__coverage__",
"debug": false,
"defaultTimeout": 30000,
"description": "Run tests on Node, excluding the benchmark tests",
"environments": [
{
"browserName": "node"
}
],
"filterErrorStack": false,
"functionalCoverage": true,
"functionalRetries": 1,
"functionalSuites": [
"tests/functional/lib/ProxiedSession.ts",
"tests/functional/webdriver/Command.ts",
"tests/functional/webdriver/Element.ts",
"tests/functional/webdriver/Server.ts",
"tests/functional/webdriver/Session.ts",
"tests/functional/webdriver/helpers/pollUntil.ts",
"tests/functional/webdriver/helpers/pollUntilTruthy.ts",
"tests/functional/webdriver/support/util.ts"
],
"functionalTimeouts": {},
"grep": "/(?:)/",
"heartbeatInterval": 60,
"instrumenterOptions": {},
"internPath": "/Users/sam/projects/intern/_testIntern/",
"loader": {
"script": "default"
},
"maxConcurrency": null,
"name": "node",
"node": {
"plugins": [
{
"script": "tests/support/globalUi.ts"
},
{
"script": "tests/support/nodeDom.ts"
},
{
"script": "source-map-support/register"
}
],
"reporters": [
{
"name": "runner",
"options": {
"hidePassed": ".",
"hideSkipped": false
}
}
],
"suites": [
"tests/benchmark/example.ts",
"tests/integration/tunnels/BrowserStackTunnel.ts",
"tests/integration/tunnels/CrossBrowserTestingTunnel.ts",
"tests/integration/tunnels/SauceLabsTunnel.ts",
"tests/integration/tunnels/SeleniumTunnel.ts",
"tests/integration/tunnels/TestingBotTunnel.ts",
"tests/unit/common/lib/Evented.ts",
"tests/unit/common/lib/global.ts",
"tests/unit/common/lib/request.ts",
"tests/unit/common/lib/util.ts",
"tests/unit/core/bin/intern.ts",
"tests/unit/core/lib/BenchmarkTest.ts",
"tests/unit/core/lib/Channel.ts",
"tests/unit/core/lib/Deferred.ts",
"tests/unit/core/lib/Environment.ts",
"tests/unit/core/lib/ProxiedSession.ts",
"tests/unit/core/lib/Server.ts",
"tests/unit/core/lib/Suite.ts",
"tests/unit/core/lib/Test.ts",
"tests/unit/core/lib/channels/Base.ts",
"tests/unit/core/lib/channels/Http.ts",
"tests/unit/core/lib/channels/WebSocket.ts",
"tests/unit/core/lib/common/ErrorFormatter.ts",
"tests/unit/core/lib/common/console.ts",
"tests/unit/core/lib/common/path.ts",
"tests/unit/core/lib/common/util.ts",
"tests/unit/core/lib/executors/Executor.ts",
"tests/unit/core/lib/executors/Node.ts",
"tests/unit/core/lib/interfaces/bdd.ts",
"tests/unit/core/lib/interfaces/benchmark.ts",
"tests/unit/core/lib/interfaces/object.ts",
"tests/unit/core/lib/interfaces/tdd.ts",
"tests/unit/core/lib/middleware/filterUrl.ts",
"tests/unit/core/lib/middleware/finalError.ts",
"tests/unit/core/lib/middleware/instrument.ts",
"tests/unit/core/lib/middleware/post.ts",
"tests/unit/core/lib/middleware/resolveSuites.ts",
"tests/unit/core/lib/middleware/unhandled.ts",
"tests/unit/core/lib/node/ErrorFormatter.ts",
"tests/unit/core/lib/node/util.ts",
"tests/unit/core/lib/reporters/Benchmark.ts",
"tests/unit/core/lib/reporters/Cobertura.ts",
"tests/unit/core/lib/reporters/Console.ts",
"tests/unit/core/lib/reporters/Coverage.ts",
"tests/unit/core/lib/reporters/HtmlCoverage.ts",
"tests/unit/core/lib/reporters/JUnit.ts",
"tests/unit/core/lib/reporters/JsonCoverage.ts",
"tests/unit/core/lib/reporters/Lcov.ts",
"tests/unit/core/lib/reporters/Pretty.ts",
"tests/unit/core/lib/reporters/Reporter.ts",
"tests/unit/core/lib/reporters/Runner.ts",
"tests/unit/core/lib/reporters/Simple.ts",
"tests/unit/core/lib/reporters/TeamCity.ts",
"tests/unit/core/lib/reporters/TextCoverage.ts",
"tests/unit/core/loaders/default.ts",
"tests/unit/core/loaders/dojo.ts",
"tests/unit/core/loaders/dojo2.ts",
"tests/unit/core/loaders/esm.ts",
"tests/unit/core/loaders/systemjs.ts",
"tests/unit/core/tasks/intern.ts",
"tests/unit/index.ts",
"tests/unit/tunnels/BrowserStackTunnel.ts",
"tests/unit/tunnels/CrossBrowserTestingTunnel.ts",
"tests/unit/tunnels/SauceLabsTunnel.ts",
"tests/unit/tunnels/SeleniumTunnel.ts",
"tests/unit/tunnels/TestingBotTunnel.ts",
"tests/unit/tunnels/Tunnel.ts",
"tests/unit/tunnels/lib/util.ts",
"tests/unit/webdriver/lib/util.ts"
],
"tsconfig": "tsconfig.json"
},
"plugins": [],
"reporters": [
{
"name": "runner"
}
],
"runInSync": false,
"serveOnly": false,
"serverPort": 9000,
"serverUrl": "http://localhost:9000/",
"sessionId": "",
"showConfig": true,
"socketPort": 9001,
"tunnel": "selenium",
"tunnelOptions": {
"drivers": [],
"tunnelId": "1582938871769"
}
}
tunnelOptions.drivers
is the driver list. However, it won't be automatically populated if there are no browsers in the environments list, so you need to create a test config (or use an existing one) that has one or more browsers in the environments list.
You can verify the original issue by just providing an environment on the command line:
$ npm test -- --show-config --environments '{"browserName":"MicrosoftEdge", "version":"insider preview"}'
and
$ npm test -- --show-config --environments '{"browserName":"MicrosoftEdge", "browserVersion":"insider preview"}'
In current master, the first will give you a tunnelOptions.drivers
value of
"tunnelOptions": {
"drivers": [
{
"name": "MicrosoftEdge"
}
],
"tunnelId": "1583422526883"
}
while the second gives you
"tunnelOptions": {
"drivers": [
{
"name": "MicrosoftEdgeChromium"
}
],
"tunnelId": "1583422594091"
}
With this PR, both commands return the expected driver of "MicrosoftEdgeChromium". 🎉
In Intern master,
browserVersion
andversion
are being handled differently, at least for MS Edge Chromium.To test, create a test config with
Run
npm test -- --config <your config> --show-config
and note that the drivers list contains MicrosoftEdge.Create or update a config to use
"browserVersion": "insider preview"
, run the test command, and note that the drivers list contains MicrosoftEdgeChromium (which is what it's supposed to contain).