Multiple Multiremote sessions in parallel#5458
Conversation
|
|
christian-bromann
left a comment
There was a problem hiding this comment.
I decided not to use multiremoteCapabilities as it was complicating things more than my current solution.
Can you elaborate why using multiremoteCapabilities makes it more complicated?
| ? this.capabilities | ||
| : Object.values(this.capabilities) | ||
| ).forEach((cap) => Object.assign(cap, DEFAULT_CONNECTION, { ...cap })) | ||
| if (config.parallelMultiremote) { |
There was a problem hiding this comment.
This change should be made in other services too where we modify the capabilities.
|
ping @arnisgustins |
|
Sorry, I don't really have time to work on this, I just hope that it becomes a real feature somewhere in the future. |
|
@arnisgustins is your intend to not continue working on this? |
Yes, at least for a long time. |
@arnisgustins great let me know if I can help with anything. Maybe you can schedule an Office Hours appointment and we can sync. |
|
I hope you guys will continue working on this feature. |
|
When will this feature be implemented? |
This is an open source project. If you like to see something implemented take the initiative and provide a pull request 😉 |
|
Given the amount of changes happening since opening the PR I recommend to create a new PR with updated codebase. |
|
@christian-bromann Do we already have a fix/enhancement for this? |
Proposed changes
Allow running Multiremote in parallel by passing an array of multiremote capabilities - #5445
So that something like this is possible:
Types of changes
Checklist
Further comments
As I see it, there is no problem for runner to execute multiple Multiremote sessions in parallel. It can be accomplished by simply pushing multiple tests into @wdio/cli/launcher.js's schedule array. The main problem is getting capabilities there in correct format, which is a little problematic because all of services are made to only support array as singleremote and object as multiremote.
Here in these changes I have modified @wdio/selenium-standalone-service to also handle multiremote array, which has to be done everywhere if this change makes sense.
To use parallel multiremote, capabilities can be passed like this:
Here you can see a new test runner option
parallelMultiremote. When it's absent/false, capabilities will be treated just like before but when it's true, it will use new logic. This is the way which resulted in least changes needed for it to work.I have only tested in one simple case and it worked very well, but there is something probably broken by this.
Reviewers: @webdriverio/project-committers