Roadmap
Where the native test runner is going — a full quality and correctness suite for Rust.
Actively built
rusty’s test surface is intentionally ambitious: a native Zig stack for day-to-day correctness, monorepo CI, and high-throughput iteration. This page is the living “where we want it to go” document. Prefer updating the shipped matrix when work lands rather than marketing ahead of the code.
North star
One command family — primarily rusty test — should become the place teams go for:
- Correctness — unit, integration/file, doctest, and (later) richer harnesses
- Quality gates — machine-readable reports, shards, retries, fail-fast
- Scale — affected graphs, CAS/layer caching, concurrency as a brand
- Honesty — Linux-only, never silent
cargo test, dual-mode product elsewhere
Inspiration remains: Jest/Vitest discovery UX, cargo test coverage, cargo-nextest execution model, docker-layer cache economics.
Done (spine)
The following are implemented and documented under What ships today:
- Native file / unit / doctest planning and execution
- Multi-package select,
--affected(+ direct), native workspace graph for rusty-format - Shared job scheduler, timed progress, test binary CAS cache
--shard k/n,--reporter junit=PATH,--retries N
Next waves
Quality & CI depth
| Direction | Intent |
|---|---|
| Package green-seal | Skip re-running a package’s tests when content digests are unchanged and last run was green |
| JSON / structured reporters | Beyond JUnit for custom dashboards |
| Richer fail output | Stable machine + human diagnostics per unit |
| nextest-like profiles | Named profiles for local vs CI (still native config, not cargo-nextest) |
Correctness tooling (suite expansion)
These are product goals for a broader quality/correctness suite — not all necessarily under rusty test forever, but part of the same story:
| Direction | Intent |
|---|---|
| Coverage | First-class report hooks driven from native compile/run |
| Sanitizers / Miri | Documented, reproducible invocations with rusty toolchains |
| Fuzzing / property tests | Integration with common Rust harnesses without cargo wrappers |
| Static policy | lint/deny-style gates as companion verbs where they fit |
Each row needs an honest matrix entry before docs claim “done.”
Platform & interop
| Direction | Intent |
|---|---|
| Drop cargo-metadata fallback | Fully native graph for remaining cargo-format workspace shapes |
[[test]] / Cargo.toml discover | Optional discovery for unmigrated trees without calling cargo test |
| Stronger hermetic offline e2e | CI fixtures that prove offline + cache without network |
Non-goals (still)
- macOS / Windows support
- Becoming a silent alias for
cargo test - Full nextest config ecosystem day-one
- Claiming full cargo-test parity in marketing copy while any matrix row is incomplete
How to contribute to the story
- Prefer extending
src/pm/test/*and the native build driver — not shelling out. - Wire tests into
zig build test(seeAGENTS.md). - Update What ships today and this roadmap in the same change.
- Keep help text, CLI reference, and this Test docs tab aligned.