Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement unified runner concept #2419

Open
davidjgoss opened this issue Aug 16, 2024 · 0 comments
Open

Implement unified runner concept #2419

davidjgoss opened this issue Aug 16, 2024 · 0 comments
Assignees
Labels
🏦 debt Tech debt

Comments

@davidjgoss
Copy link
Contributor

Currently there are two flavours of "runtime" (or "runner" - the actual test runner part) in cucumber-js: serial (the default) and parallel. This has always been one of the harder parts of the codebase to work with, but it's coming to a head now for a couple of reasons:

  • The parallel implementation has some logic around work assignment that's very challenging to test because it's all coupled to the implementation of the IPC between coordinator and worker
  • We want to start supporting plugins that relate to things the runner does (like retries), but the boundaries between the coordinator and worker worlds are unclear, and there is quite a lot of duplication between the serial and parallel implementations such that there's no good place to start this effort without getting bogged down

From the discussion in #2357, the consensus is that we'll build a generic runner architecture with the coordinator and worker concepts at the core, but with different adapters for serial (single in-process worker) and parallel (multiple workers with IPC).

This should have no effect on user-observable behaviour, but should greatly accelerate our efforts around plugins, and make the parallel functionality better tested and less risky in general.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏦 debt Tech debt
Projects
None yet
Development

No branches or pull requests

1 participant