Record, replay and rerun¶
Experimental: This feature is not yet stable
- Enable with: Add
[experimental]withrecord = trueto~/.config/nextest/config.toml, or setNEXTEST_EXPERIMENTAL_RECORD=1in the environment - Tracking issue: TBD
Nextest supports recording test runs to rerun failing tests and to replay them later. Recorded runs are stored locally in the system cache.
Recorded test runs capture:
- Test statuses (pass, fail, etc) and durations.
- Outputs for all tests, both failing and successful. (If
--no-captureis passed in at the time the run is recorded, test output cannot be captured.)
Use cases¶
- Rerunning tests that failed or were not run in the past, with the goal being to iteratively converge towards a successful test run.
- Replaying test runs, including those that might have aged past terminal scrollback.
In the future, it will be possible to export replayed test runs in various formats such as JUnit and libtest-json output.
Usage¶
To enable recording in user configuration:
~/.config/nextest/config.toml[experimental]
record = true
[record]
enabled = true
Now, all future cargo nextest run instances will automatically be recorded.
Rerunning failed tests¶
When the recording feature is enabled, you can rerun failing tests with cargo nextest run -R latest. This command will run tests that, in the original run:
- failed;
- did not run because the test run was cancelled; or,
- were not previously seen, typically because they were newly added since the original run.
The rerun feature works purely at the test level, and does not track code or build changes.
Rerun build scope
Without any further arguments, cargo nextest run -R latest will build the same targets that the original run did. If build scope arguments are specified, they will override the set of build targets from the original run.
Build scope arguments include all arguments under the Package selection, Target selection, and Feature selection headings of cargo nextest run --help.
Example rerun flow¶
Let's say that cargo nextest run --package nextest-filtering was run, and it had two failing tests:
Nextest run ID b0b38ba7-3a69-44c7-b52c-c0dabf839c07 with nextest profile: default
Starting 51 tests across 2 binaries
<output snipped>
FAIL [ 0.142s] (50/51) nextest-filtering proptest_helpers::tests::proptest_regex_valid
FAIL [ 0.143s] (51/51) nextest-filtering parsing::tests::proptest_expr_roundtrip
────────────
Summary [ 0.143s] 51 tests run: 49 passed, 2 failed, 0 skipped
Nextest run ID b0b38ba7-3a69-44c7-b52c-c0dabf839c07 with nextest profile: default
Starting 51 tests across 2 binaries
<output snipped>
FAIL [ 0.142s] (50/51) nextest-filtering proptest_helpers::tests::proptest_regex_valid
FAIL [ 0.143s] (51/51) nextest-filtering parsing::tests::proptest_expr_roundtrip
────────────
Summary [ 0.143s] 51 tests run: 49 passed, 2 failed, 0 skipped
With cargo nextest run -R latest proptest_helpers, the first test is selected:
info: rerun: inheriting build scope from original run: --package nextest-filtering
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
────────────
Nextest run ID e8082b32-05ae-4681-8b1d-84da628b9991 with nextest profile: default
Starting 1 test across 2 binaries (50 tests skipped, including 49 tests that already passed)
PASS [ 0.154s] nextest-filtering proptest_helpers::tests::proptest_regex_valid
────────────
Summary [ 0.155s] 1 test run: 1 passed, 50 skipped
Note 1 outstanding test not seen during this rerun:
nextest-filtering parsing::tests::proptest_expr_roundtrip
warning: 1 outstanding test still remains
(hint: cargo nextest run -R latest to continue rerunning)
info: rerun: inheriting build scope from original run: --package nextest-filtering
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
────────────
Nextest run ID e8082b32-05ae-4681-8b1d-84da628b9991 with nextest profile: default
Starting 1 test across 2 binaries (50 tests skipped, including 49 tests that already passed)
PASS [ 0.154s] nextest-filtering proptest_helpers::tests::proptest_regex_valid
────────────
Summary [ 0.155s] 1 test run: 1 passed, 50 skipped
Note 1 outstanding test not seen during this rerun:
nextest-filtering parsing::tests::proptest_expr_roundtrip
warning: 1 outstanding test still remains
(hint: cargo nextest run -R latest to continue rerunning)
All selected tests passed, but some outstanding (previously-failing) tests still remain, so nextest exits with the advisory exit code 5 (RERUN_TESTS_OUTSTANDING).
A subsequent cargo nextest run -R latest will run the remaining test:
info: rerun: inheriting build scope from original run: --package nextest-filtering
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
────────────
Nextest run ID 0b9f340f-1b61-4bdf-9260-54fa7a470ef4 with nextest profile: default
Starting 1 test across 2 binaries (50 tests skipped that already passed)
PASS [ 0.260s] nextest-filtering parsing::tests::proptest_expr_roundtrip
────────────
Summary [ 0.261s] 1 test run: 1 passed, 50 skipped
info: no outstanding tests remain
info: rerun: inheriting build scope from original run: --package nextest-filtering
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
────────────
Nextest run ID 0b9f340f-1b61-4bdf-9260-54fa7a470ef4 with nextest profile: default
Starting 1 test across 2 binaries (50 tests skipped that already passed)
PASS [ 0.260s] nextest-filtering parsing::tests::proptest_expr_roundtrip
────────────
Summary [ 0.261s] 1 test run: 1 passed, 50 skipped
info: no outstanding tests remain
Exit code for no tests in a rerun
In regular runs, if there are no tests to run, nextest exits with the advisory exit code 4 (NO_TESTS_RUN) by default.
With reruns, if there are no tests to run, nextest exits with exit code 0 by default, indicating success. The difference in behavior is due to the goal of reruns being to converge to a successful test run.
It is possible to rewind the rerun logic to an earlier state by passing in a run ID to -R. In this case b0b forms an unambiguous prefix (highlighted in bold purple), so cargo nextest run -R b0b results in both tests being run:
info: rerun: inheriting build scope from original run: --package nextest-filtering
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
────────────
Nextest run ID d6a74827-4764-4965-9f1a-5b16417daf28 with nextest profile: default
Starting 2 tests across 2 binaries (49 tests skipped that already passed)
PASS [ 0.153s] nextest-filtering proptest_helpers::tests::proptest_regex_valid
PASS [ 0.277s] nextest-filtering parsing::tests::proptest_expr_roundtrip
────────────
Summary [ 0.278s] 2 tests run: 2 passed, 49 skipped
info: no outstanding tests remain
info: rerun: inheriting build scope from original run: --package nextest-filtering
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
────────────
Nextest run ID d6a74827-4764-4965-9f1a-5b16417daf28 with nextest profile: default
Starting 2 tests across 2 binaries (49 tests skipped that already passed)
PASS [ 0.153s] nextest-filtering proptest_helpers::tests::proptest_regex_valid
PASS [ 0.277s] nextest-filtering parsing::tests::proptest_expr_roundtrip
────────────
Summary [ 0.278s] 2 tests run: 2 passed, 49 skipped
info: no outstanding tests remain
Rerun heuristics¶
Picking the set of tests to run is tricky, particularly in the face of tests being removed and new ones being added. We have attempted to pick a strategy that aims to be conservative while covering the most common use cases, but it is always possible that tests are missed. Because of this, and because code changes might include regressions in previously passing tests, it is recommended that you perform a full test run once your iterations are complete.
As a best practice, it is also recommended that you use CI to gate changes making their way to production, and that you perform full runs in CI.
For more about the heuristics and considerations involved, see the rerun decision table in the design document.
Replaying test runs¶
To replay the last test run, run cargo nextest replay. This will show output that looks like:
Replaying recorded run 1bed9018-d2c0-4054-ad23-29837188cc31
Started 2026-01-16 17:08:22 status: completed
────────────
Nextest run ID 1bed9018-d2c0-4054-ad23-29837188cc31 with nextest profile: default
Starting 6 tests across 2 binaries (445 tests skipped)
PASS [ 0.006s] (1/6) nextest-runner reporter::events::tests::abort_description_from_abort_status
PASS [ 0.006s] (2/6) nextest-runner reporter::events::tests::abort_description_display
PASS [ 0.006s] (3/6) nextest-runner reporter::events::tests::abort_description_cross_platform_deserialization
PASS [ 0.006s] (4/6) nextest-runner reporter::events::tests::test_is_success
PASS [ 0.025s] (5/6) nextest-runner reporter::events::tests::abort_description_serialization
PASS [ 0.026s] (6/6) nextest-runner reporter::events::tests::execution_result_description_serialization
────────────
Summary [ 0.033s] 6 tests run: 6 passed, 445 skipped
Replaying recorded run 1bed9018-d2c0-4054-ad23-29837188cc31
Started 2026-01-16 17:08:22 status: completed
────────────
Nextest run ID 1bed9018-d2c0-4054-ad23-29837188cc31 with nextest profile: default
Starting 6 tests across 2 binaries (445 tests skipped)
PASS [ 0.006s] (1/6) nextest-runner reporter::events::tests::abort_description_from_abort_status
PASS [ 0.006s] (2/6) nextest-runner reporter::events::tests::abort_description_display
PASS [ 0.006s] (3/6) nextest-runner reporter::events::tests::abort_description_cross_platform_deserialization
PASS [ 0.006s] (4/6) nextest-runner reporter::events::tests::test_is_success
PASS [ 0.025s] (5/6) nextest-runner reporter::events::tests::abort_description_serialization
PASS [ 0.026s] (6/6) nextest-runner reporter::events::tests::execution_result_description_serialization
────────────
Summary [ 0.033s] 6 tests run: 6 passed, 445 skipped
Earlier runs can be replayed by identifying them through their nextest run ID, with the --run-id/-R option to cargo nextest replay. Any unique prefix can be used; in colorized output, unique prefixes are highlighted in bold purple.
Replayed runs automatically use the configured pager, such as less.
Reporter options for replay¶
The following reporter options also apply to replays, allowing output to be displayed differently than the original run:
--status-level <LEVEL>- Which test statuses to display during the replay. The default is
pass. See Status levels for valid values. --final-status-level <LEVEL>- Which test statuses to display at the end of the replay. The default is
fail. See Status levels for valid values. --failure-output <WHEN>- When to display output for failing tests. The default is
immediate. Valid values:immediate,final,immediate-final,never. --success-output <WHEN>- When to display output for successful tests. The default is
never. Valid values:immediate,final,immediate-final,never. --no-capture- Simulate no-capture mode. Since recorded output is already captured, this is a convenience option that sets
--success-output immediate,--failure-output immediate, and--no-output-indent. --no-output-indent- Disable indentation for test output.
For example, outputs for successful tests are hidden by default. Use cargo nextest replay --success-output immediate to see those outputs.
Portable recordings¶
Recorded runs can be exported as self-contained portable recordings for sharing across machines. For example, a recording can be created in CI and downloaded locally to be replayed or used as the basis for a rerun.
To export a recording:
cargo nextest store export latest
By default, this creates a file named nextest-run-<run-id>.zip in the current directory, where <run-id> is the full UUID of the run. The output path can be customized with --archive-file:
cargo nextest store export latest --archive-file my-run.zip
To replay or rerun from a portable recording, pass the path to the .zip file as the -R argument:
# Replay a portable recording.
cargo nextest replay -R my-run.zip
# Rerun failing tests from a portable recording.
cargo nextest run -R my-run.zip
Sensitive data in portable recordings
Portable recordings contain the full captured output of every test in the run. Test outputs can inadvertently contain sensitive data such as API keys, personal information (PII), or environment variable values. Nextest does not attempt to scrub or redact recordings. You are responsible for ensuring that recordings shared outside your organization do not contain sensitive information.
For more about the portable recording format, see the design document.
Listing recorded runs¶
To list recorded runs, run cargo nextest store list. This produces output that looks like:
133 recorded runs:
b0b38ba7 2026-01-21 20:07:40 0.143s 206 KB 49 passed / 2 failed (cancelled)
├─d6a74827 2026-01-21 20:30:30 0.278s 190 KB 2 passed *latest
├─e8082b32 2026-01-21 20:18:13 0.155s 186 KB 1 passed
│ 0b9f340f 2026-01-21 20:24:55 0.261s 187 KB 1 passed
└─092550db 2026-01-21 20:08:44 0.277s 190 KB 2 passed
362688c2 2026-01-21 20:07:37 0.266s 208 KB 51 passed
<output snipped>
─────────
29.5 MB
133 recorded runs:
b0b38ba7 2026-01-21 20:07:40 0.143s 206 KB 49 passed / 2 failed (cancelled)
├─d6a74827 2026-01-21 20:30:30 0.278s 190 KB 2 passed *latest
├─e8082b32 2026-01-21 20:18:13 0.155s 186 KB 1 passed
│ 0b9f340f 2026-01-21 20:24:55 0.261s 187 KB 1 passed
└─092550db 2026-01-21 20:08:44 0.277s 190 KB 2 passed
362688c2 2026-01-21 20:07:37 0.266s 208 KB 51 passed
<output snipped>
─────────
29.5 MB
As with reruns, highlighted prefixes can be used to uniquely identify a test run. For example, with the above output, to replay the run ID starting with b0b38ba7, run cargo nextest replay -R b0b.
Reruns are shown in a tree structure. Chains of reruns (e.g., with repeated cargo nextest run -R latest invocations) are shown linearly if possible.
Detailed information about a run¶
For detailed information, run cargo nextest store info <run-id>. For example, cargo nextest store info b0b:
Run b0b38ba7-3a69-44c7-b52c-c0dabf839c07
nextest version: 0.9.123
command: /opt/cargo/bin/cargo-nextest nextest run -p nextest-filtering
env: CARGO_HOME=/opt/cargo
status: cancelled (exit code 100)
started at: 2026-01-21 20:07:40 +00:00 (1h ago)
last written at: 2026-01-21 20:30:30 +00:00 (52m ago)
duration: 0.143s
replayable: yes
tests:
passed: 49
failed: 2
sizes: compressed uncompressed entries
log 5 KB 108 KB 105
store 200 KB 2.0 MB 77
────────── ──────────── ───────
total 206 KB 2.2 MB 182
Run b0b38ba7-3a69-44c7-b52c-c0dabf839c07
nextest version: 0.9.123
command: /opt/cargo/bin/cargo-nextest nextest run -p nextest-filtering
env: CARGO_HOME=/opt/cargo
status: cancelled (exit code 100)
started at: 2026-01-21 20:07:40 +00:00 (1h ago)
last written at: 2026-01-21 20:30:30 +00:00 (52m ago)
duration: 0.143s
replayable: yes
tests:
passed: 49
failed: 2
sizes: compressed uncompressed entries
log 5 KB 108 KB 105
store 200 KB 2.0 MB 77
────────── ──────────── ───────
total 206 KB 2.2 MB 182
For debugging purposes, runs capture all environment variables starting with CARGO_ and NEXTEST_, other than ones ending with _TOKEN (since they may contain sensitive tokens).
Record retention¶
Nextest applies limits to recorded runs to prevent the cache size from blowing up.
Retention limits are applied per-workspace. The default limits are:
- Number: A maximum of 100 runs are stored.
- Size: Runs are stored until their compressed size exceeds 1 GB.
- Age: Runs are stored for up to 30 days.
These limits can be customized via the [record] section in user configuration.
The cache is pruned in order of last written at, starting from the oldest runs. The last written at time is set at initial creation, and bumped on the original run when a recorded rerun is created.
Example pruning configuration¶
~/.config/nextest/config.toml[record]
enabled = true
# The maximum number of recorded runs.
max-records = 200
# The maximum total compressed size across recorded runs.
max-total-size = "2GB"
# The number of days to persist runs for.
max-age = "60d"
Automatic pruning¶
The cache is automatically automatically pruned once a day at the end of test runs, if recording is enabled. The cache is also pruned if the number or size limits are exceeded by a factor of 1.5x or more.
Manual pruning¶
To prune recorded runs manually, run cargo nextest store prune.
To see what would be pruned the next time, run cargo nextest store prune --dry-run.
Store location¶
The store location is platform-dependent:
| Platform | Path |
|---|---|
| Linux, macOS, and other Unix | $XDG_CACHE_HOME/nextest/ or ~/.cache/nextest/ |
| Windows | %LOCALAPPDATA%\nextest\ |
The store location can be overridden via the NEXTEST_CACHE_DIR environment variable.
Within the store, recorded runs are indexed by canonicalized workspace path.
Configuration options¶
For a full list, see Record configuration.
Options and arguments¶
The output of cargo nextest replay -h:
Replay a recorded test run (experimental)
Usage: cargo nextest replay [OPTIONS]
Options:
--color <WHEN> Produce color output: auto, always, never [env:
CARGO_TERM_COLOR=always] [default: auto]
-R, --run-id <RUN_ID> Run ID to replay, or latest [default: latest]
--exit-code Exit with the same code as the original run
--no-pager Do not pipe output through a pager
--failure-output <WHEN> Output stdout and stderr on failure [env:
NEXTEST_FAILURE_OUTPUT=] [possible values: immediate,
immediate-final, final, never]
--success-output <WHEN> Output stdout and stderr on success [env:
NEXTEST_SUCCESS_OUTPUT=] [possible values: immediate,
immediate-final, final, never]
--status-level <LEVEL> Test statuses to output [env: NEXTEST_STATUS_LEVEL=] [possible
values: none, fail, retry, slow, leak, pass, skip, all]
--final-status-level <LEVEL> Test statuses to output at the end of the run [env:
NEXTEST_FINAL_STATUS_LEVEL=] [possible values: none, fail,
flaky, slow, skip, pass, all]
--no-output-indent Do not indent captured test output [env:
NEXTEST_NO_OUTPUT_INDENT=]
-v, --verbose Verbose output [env: NEXTEST_VERBOSE=]
-h, --help Print help (see more with '--help')
Reporter options:
--no-capture Simulate no-capture mode during replay
Manifest options:
--manifest-path <PATH> Path to Cargo.toml
Config options:
--user-config-file <PATH>
User config file [default: ~/.config/nextest/config.toml or platform equivalent] [env:
NEXTEST_USER_CONFIG_FILE=]
--config-file <PATH>
Config file [default: workspace-root/.config/nextest.toml]
--tool-config-file <TOOL:ABS_PATH>
Tool-specific config files
--override-version-check
Override checks for the minimum version defined in nextest's config
-P, --profile <PROFILE>
The nextest profile to use [env: NEXTEST_PROFILE=]
Replay a recorded test run (experimental)
Usage: cargo nextest replay [OPTIONS]
Options:
--color <WHEN> Produce color output: auto, always, never [env:
CARGO_TERM_COLOR=always] [default: auto]
-R, --run-id <RUN_ID> Run ID to replay, or latest [default: latest]
--exit-code Exit with the same code as the original run
--no-pager Do not pipe output through a pager
--failure-output <WHEN> Output stdout and stderr on failure [env:
NEXTEST_FAILURE_OUTPUT=] [possible values: immediate,
immediate-final, final, never]
--success-output <WHEN> Output stdout and stderr on success [env:
NEXTEST_SUCCESS_OUTPUT=] [possible values: immediate,
immediate-final, final, never]
--status-level <LEVEL> Test statuses to output [env: NEXTEST_STATUS_LEVEL=] [possible
values: none, fail, retry, slow, leak, pass, skip, all]
--final-status-level <LEVEL> Test statuses to output at the end of the run [env:
NEXTEST_FINAL_STATUS_LEVEL=] [possible values: none, fail,
flaky, slow, skip, pass, all]
--no-output-indent Do not indent captured test output [env:
NEXTEST_NO_OUTPUT_INDENT=]
-v, --verbose Verbose output [env: NEXTEST_VERBOSE=]
-h, --help Print help (see more with '--help')
Reporter options:
--no-capture Simulate no-capture mode during replay
Manifest options:
--manifest-path <PATH> Path to Cargo.toml
Config options:
--user-config-file <PATH>
User config file [default: ~/.config/nextest/config.toml or platform equivalent] [env:
NEXTEST_USER_CONFIG_FILE=]
--config-file <PATH>
Config file [default: workspace-root/.config/nextest.toml]
--tool-config-file <TOOL:ABS_PATH>
Tool-specific config files
--override-version-check
Override checks for the minimum version defined in nextest's config
-P, --profile <PROFILE>
The nextest profile to use [env: NEXTEST_PROFILE=]
The output of cargo nextest replay --help:
Replay a recorded test run (experimental).
This command replays a recorded test run, displaying events as if the run were happening live.
This is an experimental feature. To enable it, set the environment variable
NEXTEST_EXPERIMENTAL_RECORD=1.
Usage: cargo nextest replay [OPTIONS]
Options:
--color <WHEN>
Produce color output: auto, always, never
[env: CARGO_TERM_COLOR=always]
[default: auto]
-R, --run-id <RUN_ID>
Run ID to replay, or latest.
Accepts "latest" (the default) for the most recent completed run, or a full UUID or
unambiguous prefix.
[default: latest]
--exit-code
Exit with the same code as the original run.
By default, replay exits with code 0 if the replay itself succeeds. With this flag, replay
exits with the code that the original test run would have returned (e.g., 100 for test
failures, 105 for setup script failures).
--no-pager
Do not pipe output through a pager
--failure-output <WHEN>
Output stdout and stderr on failure
[env: NEXTEST_FAILURE_OUTPUT=]
[possible values: immediate, immediate-final, final, never]
--success-output <WHEN>
Output stdout and stderr on success
[env: NEXTEST_SUCCESS_OUTPUT=]
[possible values: immediate, immediate-final, final, never]
--status-level <LEVEL>
Test statuses to output
[env: NEXTEST_STATUS_LEVEL=]
[possible values: none, fail, retry, slow, leak, pass, skip, all]
--final-status-level <LEVEL>
Test statuses to output at the end of the run
[env: NEXTEST_FINAL_STATUS_LEVEL=]
[possible values: none, fail, flaky, slow, skip, pass, all]
--no-output-indent
Do not indent captured test output.
By default, test output produced by --failure-output and --success-output is indented for
visual clarity. This flag disables that behavior.
This option has no effect with --no-capture, since that passes through standard output and
standard error.
[env: NEXTEST_NO_OUTPUT_INDENT=]
-v, --verbose
Verbose output
[env: NEXTEST_VERBOSE=]
-h, --help
Print help (see a summary with '-h')
Reporter options:
--no-capture
Simulate no-capture mode during replay.
This is a convenience flag that sets:
- --success-output immediate
- --failure-output immediate
- --no-output-indent
These settings produce output similar to running tests with --no-capture, showing all
output immediately without indentation.
Explicit --success-output and --failure-output flags take precedence over this setting.
Manifest options:
--manifest-path <PATH>
Path to Cargo.toml
Config options:
--user-config-file <PATH>
User config file [default: ~/.config/nextest/config.toml or platform equivalent].
User configuration stores per-user preferences like UI settings. Use "none" to skip
loading user config entirely.
[env: NEXTEST_USER_CONFIG_FILE=]
--config-file <PATH>
Config file [default: workspace-root/.config/nextest.toml]
--tool-config-file <TOOL:ABS_PATH>
Tool-specific config files.
Some tools on top of nextest may want to set up their own default configuration but
prioritize user configuration on top. Use this argument to insert configuration that's
lower than --config-file in priority but above the default config shipped with nextest.
Arguments are specified in the format "tool:abs_path", for example
"my-tool:/path/to/nextest.toml" (or "my-tool:C:\path\to\nextest.toml" on Windows). Paths
must be absolute.
This argument may be specified multiple times. Files that come later are lower priority
than those that come earlier.
--override-version-check
Override checks for the minimum version defined in nextest's config.
Repository and tool-specific configuration files can specify minimum required and
recommended versions of nextest. This option overrides those checks.
-P, --profile <PROFILE>
The nextest profile to use.
Nextest's configuration supports multiple profiles, which can be used to set up different
configurations for different purposes. (For example, a configuration for local runs and
one for CI.) This option selects the profile to use.
[env: NEXTEST_PROFILE=]
Replay a recorded test run (experimental).
This command replays a recorded test run, displaying events as if the run were happening live.
This is an experimental feature. To enable it, set the environment variable
NEXTEST_EXPERIMENTAL_RECORD=1.
Usage: cargo nextest replay [OPTIONS]
Options:
--color <WHEN>
Produce color output: auto, always, never
[env: CARGO_TERM_COLOR=always]
[default: auto]
-R, --run-id <RUN_ID>
Run ID to replay, or latest.
Accepts "latest" (the default) for the most recent completed run, or a full UUID or
unambiguous prefix.
[default: latest]
--exit-code
Exit with the same code as the original run.
By default, replay exits with code 0 if the replay itself succeeds. With this flag, replay
exits with the code that the original test run would have returned (e.g., 100 for test
failures, 105 for setup script failures).
--no-pager
Do not pipe output through a pager
--failure-output <WHEN>
Output stdout and stderr on failure
[env: NEXTEST_FAILURE_OUTPUT=]
[possible values: immediate, immediate-final, final, never]
--success-output <WHEN>
Output stdout and stderr on success
[env: NEXTEST_SUCCESS_OUTPUT=]
[possible values: immediate, immediate-final, final, never]
--status-level <LEVEL>
Test statuses to output
[env: NEXTEST_STATUS_LEVEL=]
[possible values: none, fail, retry, slow, leak, pass, skip, all]
--final-status-level <LEVEL>
Test statuses to output at the end of the run
[env: NEXTEST_FINAL_STATUS_LEVEL=]
[possible values: none, fail, flaky, slow, skip, pass, all]
--no-output-indent
Do not indent captured test output.
By default, test output produced by --failure-output and --success-output is indented for
visual clarity. This flag disables that behavior.
This option has no effect with --no-capture, since that passes through standard output and
standard error.
[env: NEXTEST_NO_OUTPUT_INDENT=]
-v, --verbose
Verbose output
[env: NEXTEST_VERBOSE=]
-h, --help
Print help (see a summary with '-h')
Reporter options:
--no-capture
Simulate no-capture mode during replay.
This is a convenience flag that sets:
- --success-output immediate
- --failure-output immediate
- --no-output-indent
These settings produce output similar to running tests with --no-capture, showing all
output immediately without indentation.
Explicit --success-output and --failure-output flags take precedence over this setting.
Manifest options:
--manifest-path <PATH>
Path to Cargo.toml
Config options:
--user-config-file <PATH>
User config file [default: ~/.config/nextest/config.toml or platform equivalent].
User configuration stores per-user preferences like UI settings. Use "none" to skip
loading user config entirely.
[env: NEXTEST_USER_CONFIG_FILE=]
--config-file <PATH>
Config file [default: workspace-root/.config/nextest.toml]
--tool-config-file <TOOL:ABS_PATH>
Tool-specific config files.
Some tools on top of nextest may want to set up their own default configuration but
prioritize user configuration on top. Use this argument to insert configuration that's
lower than --config-file in priority but above the default config shipped with nextest.
Arguments are specified in the format "tool:abs_path", for example
"my-tool:/path/to/nextest.toml" (or "my-tool:C:\path\to\nextest.toml" on Windows). Paths
must be absolute.
This argument may be specified multiple times. Files that come later are lower priority
than those that come earlier.
--override-version-check
Override checks for the minimum version defined in nextest's config.
Repository and tool-specific configuration files can specify minimum required and
recommended versions of nextest. This option overrides those checks.
-P, --profile <PROFILE>
The nextest profile to use.
Nextest's configuration supports multiple profiles, which can be used to set up different
configurations for different purposes. (For example, a configuration for local runs and
one for CI.) This option selects the profile to use.
[env: NEXTEST_PROFILE=]