Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR-0041: nextest as the canonical Rust test runner

Date: 2026-07-25 / Status: Accepted. Supersedes only the cargo-nextest rejection in ADR-0014.

All Rust unit/integration tests use cargo nextest run; stable-Rust doctests remain the separate cargo test --doc gate because nextest cannot enumerate them. The two Cargo workspaces own separate .config/nextest.toml files, while the executable version is pinned once in mise.toml.

Retries are disabled and flaky passes fail. Slow tests are terminated after a bounded number of timeout periods, and every run has a global timeout. CI, lefthook, coverage, mutation testing, targeted recipes, and ignored admin tests share this executor.

ADR-0014 rejected nextest when a small pure suite showed no speed benefit. The release pass added a real overlapped-I/O lifecycle test and exposed an indefinitely stuck cargo test binary. Per-test attribution, process isolation, Windows Job Object termination, and JUnit evidence now outweigh the extra tool. This adoption is for bounded, diagnosable tests—not a speed claim. Raising global timeouts or enabling retries to hide one unstable test is rejected.