Overview
Selective is a test orchestration service for Ruby suites. You keep your CI provider, your test framework and your nodes. You add a gem, swap one command, and each CI node connects to Selective for its share of the work.
From that point Selective does four things to a run:
- Test selection. For each change, it runs only the tests that could be affected, using a map of which files each test executes. Everything else is skipped. See How test selection works.
- Queue distribution. Tests are handed to nodes from one central queue as nodes free up, so no node sits idle while another finishes a heavy file. See Queue distribution.
- Flake handling. A failing test is retried immediately on another node while the run continues. A pass on retry is recorded as a flake, tracked over time, and can be quarantined. See Flakes and retries.
- Live results. Results stream to the dashboard and to the
selectiveCLI as tests finish, so people and coding agents can react before the run is over. See Real-time results.
Supported runners and providers
Section titled “Supported runners and providers”| Supported | |
|---|---|
| Test frameworks | RSpec (selective-ruby-rspec), Minitest (selective-ruby-minitest) |
| Detected automatically | GitHub Actions, CircleCI, Semaphore, Buildkite, RWX |
| Any other CI | Yes, by setting a few environment variables |
| Ruby platforms | x86_64-linux, aarch64-linux, x86_64-darwin, arm64-darwin |
| Git hosts | GitHub, GitLab, Bitbucket |
How a run works
Section titled “How a run works”- Each CI node runs
bundle exec selective rspec(orselective minitest) instead of the plain test command. - The runner connects to Selective over a WebSocket and sends the run’s context (branch, commit, run and attempt identifiers) and the list of tests it can see.
- Selective decides which tests the run needs, orders them so the ones most likely to fail go first, and feeds them to whichever node asks next.
- Results stream back as each test finishes. Failures are retried on another node. When the queue is empty the run is complete.
Where to start
Section titled “Where to start”- Getting started takes about ten minutes and ends with your suite running through Selective.
- Using Selective with coding agents if an agent is going to do the setup or read the results.
- Agents can read llms.txt for the whole setup in one file.
Selective is free while in open beta. Questions go to [email protected].