Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsJul 18, 2026·3 min de lecture

cargo-nextest — Next-Generation Test Runner for Rust

cargo-nextest is a drop-in replacement for cargo test that runs each test in its own process, providing better isolation, up to 3x faster execution through parallelism, and rich structured output with per-test timing and retry support.

Prêt pour agents

Installation avec revue préalable

Cet actif nécessite une revue. Le prompt copié demande un dry-run, affiche les écritures, puis continue seulement après confirmation.

Needs Confirmation · 64/100Policy : confirmer
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
cargo-nextest
Commande avec revue préalable
npx -y tokrepo@latest install f5093051-8262-11f1-9bc6-00163e2b0d79 --target codex

Dry-run d'abord, confirmez les écritures, puis lancez cette commande.

Introduction

cargo-nextest reimagines Rust test execution by running each test as an individual process rather than grouping tests within a single binary process. This per-test isolation eliminates shared state issues, enables fine-grained parallelism, and produces structured output showing exactly which tests passed, failed, or were slow.

What cargo-nextest Does

  • Runs each Rust test in its own process for complete isolation
  • Parallelizes test execution across CPU cores for up to 3x faster CI runs
  • Provides structured JUnit XML and machine-readable output for CI systems
  • Supports automatic retries for flaky tests with configurable retry policies
  • Shows per-test timing, making slow test detection trivial

Architecture Overview

Nextest operates in two phases. The list phase compiles test binaries and discovers all test functions by parsing binary output. The run phase executes each test as a separate child process, managing a pool of concurrent processes up to the configured parallelism limit. Results are collected in real time and streamed to formatters (human-readable, JUnit XML, or JSON). This architecture means a panicking test only affects its own process, not the entire suite.

Self-Hosting & Configuration

  • Install via cargo install or download pre-built binaries for faster setup
  • Configure via .config/nextest.toml in your project root
  • Set default parallelism, timeout, and retry policies per profile
  • Define custom test groups with dedicated thread limits for resource-heavy tests
  • Use profiles (default, ci) to switch settings between local dev and CI

Key Features

  • Per-test process isolation prevents panics and global state from affecting other tests
  • Up to 3x faster execution in CI through aggressive parallelism
  • Automatic flaky test retries with configurable count and delay
  • JUnit XML output for native integration with GitHub Actions, Jenkins, and GitLab CI
  • Test archives: bundle test binaries for execution on a different machine

Comparison with Similar Tools

  • cargo test — Runs tests in-process within each binary; nextest isolates each test in its own process
  • cargo test --jobs N — Controls binary compilation parallelism; nextest parallelizes test execution
  • libtest — Rust's built-in test harness; nextest wraps it with better output and isolation
  • cargo-tarpaulin — Coverage tool; nextest focuses on execution speed and reliability
  • pytest (Python) — Similar per-test isolation model; nextest brings this to the Rust ecosystem

FAQ

Q: Is nextest a drop-in replacement for cargo test? A: For running tests, yes. cargo nextest run replaces cargo test with the same filtering options. Doc-tests still require cargo test --doc as a separate step.

Q: Does it support doc-tests? A: Not directly. Doc-tests use a different compilation model. Run cargo test --doc alongside cargo nextest run in CI.

Q: How does it handle tests that rely on shared state? A: Each test runs in its own process, so shared mutable statics are isolated. Tests that intentionally share state via the filesystem still work, but global in-process state is not shared.

Q: Does it work with workspaces? A: Yes. Nextest supports Cargo workspaces and can run tests across all workspace members in parallel.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires