I suggest reviewing #5427 first. Any more changes made there that might apply to main I will add here as well.
reuse BrowserStack workers.
add support for "latest" and "latest-1" in browser version filters
add support for specifying non-final browser versions, such as beta versions
more accurate eslint for files in test/runner
switched --no-isolate command flag to --isolate. Now that browser instances are shared, it made more sense to me to default to no isolation unless specified. This turned out to be cleaner because the only place we isolate is in browserstack.yml.
fixed an issue with retries where it wasn't always waiting for the retried test run
Rather than spinning up a separate browser instance for each module, we send back the next test's URL when a module completes, if there is one. Then listeners.js sets window.location. At first, I tried BrowserStack's change url API, but it was slower and incredibly error-prone.
Summary
I suggest reviewing #5427 first. Any more changes made there that might apply to
main
I will add here as well.--no-isolate
command flag to--isolate
. Now that browser instances are shared, it made more sense to me to default to no isolation unless specified. This turned out to be cleaner because the only place we isolate is in browserstack.yml.Rather than spinning up a separate browser instance for each module, we send back the next test's URL when a module completes, if there is one. Then listeners.js sets
window.location
. At first, I tried BrowserStack's change url API, but it was slower and incredibly error-prone.Sample BrowserStack run: https://github.com/timmywil/jquery/actions/runs/8123504592
Testing time has gone from 15-30min to 5min!
Checklist