TL;DR — Quick Summary
cargo-nextest is a next-gen Rust test runner. 60% faster than cargo test with parallel execution, retries, JUnit XML output, and per-test time limits.
cargo-nextest runs Rust tests faster. Process-per-test parallelism, retries, JUnit output — CI/CD ready.
Installation
# Cargo
cargo install cargo-nextest
# Pre-built (recommended for CI)
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ~/.cargo/bin
Usage
# Run all tests
cargo nextest run
# Filter by test name
cargo nextest run my_test
# Filter by package
cargo nextest run -p my-crate
# Retries for flaky tests
cargo nextest run --retries 2
# Per-test time limit
cargo nextest run --test-timeout 60s
# Parallel threads
cargo nextest run --test-threads 8
# JUnit XML output (CI/CD)
cargo nextest run --message-format junit-xml > results.xml
# List tests (no run)
cargo nextest list
# Only failed tests
cargo nextest run --run-ignored only
# Profile
cargo nextest run --profile ci
Configuration
# .config/nextest.toml
[profile.default]
retries = 0
test-threads = "num-cpus"
[profile.ci]
retries = 2
fail-fast = false
test-timeout = "120s"
Summary
- cargo-nextest runs each test as a separate process for true parallelism
- Up to 60% faster than cargo test on multi-core machines
- Retries for flaky tests, per-test timeouts
- JUnit XML output for CI/CD integration
- Profile-based configuration for dev vs CI environments