PackageTrack
Sign in Get early access

cargo-nextest

A next-generation test runner for Rust.

0.9.143 12M downloads/mo #2789 most downloaded on crates.io nextest-rs/nextest

What this package is like to depend on

Last release 19 days ago

04 Aug 2026

Ships fairly regularly

a new release about every 2 weeks

Nearly every release is documented

notes for 128 of 128 stable releases

2 versions withdrawn

withdrawn after publishing

5 years old

167 releases · first in 2022

46 releases in the last 12 months

see the full history below

Release timeline

167 releases · Feb 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 167
  1. 0.9.143 04 Aug 2026
    Release notes

    Added

    • A new junit.report-skipped configuration setting controls which skipped tests are emitted in the JUnit XML report as <testcase> elements with a <skipped> child. (#885)

      Thanks to liangfu for your first contribution!

    • While listing tests, nextest now shows a progress bar if listing takes longer than 2 seconds. Listing is usually fast, but can be slow in some environments, such as with antivirus software that scans each test binary before it runs. (#3471)

    • The binaries metadata (used by archives and --binaries-metadata) now records whether Cargo built each non-test binary for the host or the target platform. Future versions of nextest will use this to configure environment variables correctly in cross-compilation scenarios. (#3520)

    Changed

    • Nextest now orders the dynamic library search path the way current versions of Cargo do, with the Cargo artifact directory ahead of the deps directory. Previously the two were reversed, so a test could potentially resolve a dylib to a different copy than cargo test would. (Cargo swapped the two in 1.93.)

    Fixed

    • Nextest now computes the dynamic library search path correctly under build directory layout v2, which became the default on nightly Rust on 2026-07-30. Previously, tests that linked against a dylib dependency failed to start because the dynamic library could not be found.
    • When Cargo's build.build-dir is configured, nextest now adds the Cargo artifact directory (where final artifacts like binaries and dynamic libraries are uplifted to) instead of the build directory (for intermediate artifacts) to the dynamic library search path. This matches Cargo's behavior.
    • Nextest now detects the base output directory for test binaries built from [[example]] targets, which Cargo places in examples rather than deps. Previously, a run restricted to examples didn't add anything to the dynamic library search path, so an example test linking against a dylib failed to start.
    • While creating an archive with a filterset, nextest now always includes dynamic libraries in the archive, even those from packages whose test binaries are all filtered out. Dynamic libraries are on the library search path and may be loaded by tests in other packages. Binaries exposed via CARGO_BIN_EXE_<name> are still filtered out if no test binaries from that package are selected. (#3516)
    • The "Archiving" message now counts non-test binaries correctly. Previously, nextest counted the number of packages containing non-test binaries rather than the number of binaries. (#3515)
    Open source →
    Release notes

    Added

    • A new junit.report-skipped configuration setting controls which skipped tests are emitted in the JUnit XML report as <testcase> elements with a <skipped> child. (#885)

      Thanks to liangfu for your first contribution!

    • While listing tests, nextest now shows a progress bar if listing takes longer than 2 seconds. Listing is usually fast, but can be slow in some environments, such as with antivirus software that scans each test binary before it runs. (#3471)

    • The binaries metadata (used by archives and --binaries-metadata) now records whether Cargo built each non-test binary for the host or the target platform. Future versions of nextest will use this to configure environment variables correctly in cross-compilation scenarios. (#3520)

    Changed

    • Nextest now orders the dynamic library search path the way current versions of Cargo do, with the Cargo artifact directory ahead of the deps directory. Previously the two were reversed, so a test could potentially resolve a dylib to a different copy than cargo test would. (Cargo swapped the two in 1.93.)

    Fixed

    • Nextest now computes the dynamic library search path correctly under build directory layout v2, which became the default on nightly Rust on 2026-07-30. Previously, tests that linked against a dylib dependency failed to start because the dynamic library could not be found.
    • When Cargo's build.build-dir is configured, nextest now adds the Cargo artifact directory (where final artifacts like binaries and dynamic libraries are uplifted to) instead of the build directory (for intermediate artifacts) to the dynamic library search path. This matches Cargo's behavior.
    • Nextest now detects the base output directory for test binaries built from [[example]] targets, which Cargo places in examples rather than deps. Previously, a run restricted to examples didn't add anything to the dynamic library search path, so an example test linking against a dylib failed to start.
    • While creating an archive with a filterset, nextest now always includes dynamic libraries in the archive, even those from packages whose test binaries are all filtered out. Dynamic libraries are on the library search path and may be loaded by tests in other packages. Binaries exposed via CARGO_BIN_EXE_<name> are still filtered out if no test binaries from that package are selected. (#3516)
    • The "Archiving" message now counts non-test binaries correctly. Previously, nextest counted the number of packages containing non-test binaries rather than the number of binaries. (#3515)
    Open source →
  2. 0.9.140 05 Jul 2026
    Release notes

    Added

    Changed

    • The glibc requirement for pre-built aarch64-unknown-linux-gnu and riscv64-unknown-linux-gnu builds has been lowered to glibc 2.27.
    • riscv64-unknown-linux-gnu now uses rustls + aws-lc-rs rather than OpenSSL.
    Open source →
  3. 0.9.140-b.2 05 Jul 2026 pre-release

    Nothing published for this version

  4. 0.9.140-b.1 05 Jul 2026 pre-release

    Nothing published for this version

  5. 0.9.138 21 Jun 2026
    Release notes

    Added

    • Nextest now sets the following environment variables during the list phase, not just the run phase:

      • NEXTEST_VERSION
      • NEXTEST_REQUIRED_VERSION
      • NEXTEST_RECOMMENDED_VERSION
      • NEXTEST_RUN_ID
      • NEXTEST_BINARY_ID
      • NEXTEST_WORKSPACE_ROOT

      This lets target runners and custom test harnesses use this information while listing tests. (#3410)

    Changed

    • When --cargo-metadata is passed without --binaries-metadata, and the Cargo metadata contains exactly one default member (for example, metadata generated with --manifest-path path/to/package/Cargo.toml), nextest now anchors the build scope to that member's Cargo.toml rather than widening it to the entire workspace. (#3409)
    • --workspace-remap now requires both --cargo-metadata and --binaries-metadata. The combination of --workspace-remap and --cargo-metadata cannot work without --binaries-metadata, so nextest now reports this as an error up front. (#3409)
    Open source →
  6. 0.9.137 26 May 2026
    Release notes

    Changed

    • CLI --help descriptions, configuration-reference docs, and JSON schema descriptions now use consistent language and voice. (#3366)

    Fixed

    • Filterset expressions like not(test(foo)), all()and(test(foo)), and all()or(test(foo)), where not, and, or or is immediately followed by an opening parenthesis, now parse correctly. Previously, a separating space was required. (#3367)
    Open source →
  7. 0.9.136 17 May 2026
    Release notes

    Added

    • Following up from the recently-added schema for repository configuration, nextest now also provides a JSON Schema for user configuration. The schema for the running version can be obtained by running cargo nextest self schema user-config. (#3351)

    Changed

    • The max-progress-running user-config setting no longer accepts numeric strings like "8" (an undocumented fallback). The supported values remain a non-negative integer (e.g. 8) or "infinite". (#3350)
    Open source →
  8. 0.9.135 14 May 2026
    Release notes

    Fixed an issue with a from-crates.io build.

    Open source →
  9. 0.9.133 14 Apr 2026
    Release notes

    Added

    • Nextest now supports a group() filterset predicate for CLI filter expressions, allowing tests to be listed or run by their assigned test group. (#3273)

      For example, to run all tests in a specific group:

      cargo nextest run -E 'group(my-group)'
      

      To list all tests that aren't in the default global group:

      cargo nextest list -E 'not group(@global)'
      
    • As part of cargo test binary emulation, --nocapture can now be passed in after --.

    Fixed

    • When --status-level fail is set, slow test notifications were previously displayed in a corrupt format (the duration and test name were shown, but the status was omitted). Slow notifications are now correctly hidden. (#3236)
    • On Windows, pressing t for test status info no longer shows the output twice; nextest now only reacts to key-press events, ignoring key-release events. (#3225)

    Security

    • Update rand to 0.10.1 for RUSTSEC-2026-0097 / GHSA-cq8v-f236-94qc. Note that based on the advisory description, this unsoundness does not appear to affect nextest, since none of the covered rand versions have the log feature turned on.
    • Update rustls-webpki to 0.103.10.
    Open source →
  10. 0.9.132 20 Mar 2026
    Release notes

    Update aws-lc-sys to 0.39.0 to address GHSA-394x-vwmw-crm3.

    Open source →
  11. 0.9.132-rc.3 20 Mar 2026 pre-release

    Nothing published for this version

  12. 0.9.131 18 Mar 2026
    Release notes

    Added

    • Setup scripts and wrapper scripts can now specify per-command environment variables via the env field in the command configuration. (#3001)

      For example:

      [scripts.setup.script1]
      command = {
          command-line = "cargo run -p setup-test-db",
          env = {
              DB_PATH = "sqlite:/path/to/source.db",
          },
      }
      

      Keys cannot begin with NEXTEST, as that prefix is reserved for internal use. Values defined in env override values set by the environment and by Cargo's config.toml (including those with force = true).

      Thanks metatoaster for your first contribution!

    • A new flaky-result configuration field and --flaky-result CLI flag (environment variable NEXTEST_FLAKY_RESULT) controls whether flaky tests are treated as passing or failing. When set to "fail", tests that pass on retry are marked as failures. The default remains "pass". flaky-result can be set at the profile level or per-test via overrides. (#3148)

      For more information, see Failing flaky tests.

      [profile.ci]
      retries = 2
      flaky-result = "fail"
      
    • A new cargo nextest store export-chrome-trace command that exports test run data in the Chrome Trace Event format. Traces can be loaded into Perfetto or Chrome's chrome://tracing for a timeline view of test parallelism and execution. (#3163)

      cargo nextest store export-chrome-trace latest -o trace.json
      

      Traces support grouping by binary (default) or by slot (--group-by slot), and can be exported from both on-disk runs and portable recordings. For more, see Perfetto traces.

    • Added release binaries for riscv64gc-unknown-linux-gnu. These binaries are cross-compiled from x86_64 Linux and are not currently tested.

    Fixed

    Changed

    • When retries are enabled, nextest no longer shows TRY 1 SLOW messages for the first attempt. TRY N SLOW is still shown for subsequent attempts.

    Miscellaneous

    • Self-update (cargo nextest self update) now uses ureq instead of reqwest and replaces the ring dependency with aws-lc-rs. This may require you to install CMake if you're on a less-commonly-used platform. (#3141)

    Internal improvements

    • Breaking change to the recording format: recordings now include test group and slot information, enabling Chrome trace export from recordings. (#3158)
    Open source →
  13. 0.9.131-rc.3 17 Mar 2026 pre-release

    Nothing published for this version

  14. 0.9.131-rc.2 17 Mar 2026 pre-release

    Nothing published for this version

  15. 0.9.130 10 Mar 2026
    Release notes

    Added

    • Nextest now sets several new environment variables for tests and setup scripts: (#3103)

      • NEXTEST_VERSION: the current nextest version as a semver string.
      • NEXTEST_REQUIRED_VERSION and NEXTEST_RECOMMENDED_VERSION: the minimum required and recommended nextest versions from the repository's nextest-version configuration. If not configured, the value is "none".
      • NEXTEST_TEST_THREADS: the computed number of test threads for this run.
      • NEXTEST_WORKSPACE_ROOT: the absolute path to the workspace root (respects --workspace-remap).
    • Nextest now sets CARGO_BIN_EXE_<name> at runtime for integration tests and benchmarks, matching cargo test in Rust 1.94 and above. Nextest sets this variable on all Rust versions. (#3137)

      Previously, nextest only set NEXTEST_BIN_EXE_<name>, which remains available (and, with underscores, continues to be the recommended form). The CARGO_BIN_EXE_<name> form improves compatibility with tests written for cargo test.

    Changed

    • The automatic migration of recorded test runs from the cache directory to the state directory, introduced in version 0.9.126, has been removed. Records in the old cache directory location will no longer be migrated. (#3101)

    Fixed

    A couple of displayer fixes:

    • Better sorting for the final summary when counters aren't displayed. (#3100)
    • Fixed counter width padding in progress output to use the run count rather than the total test count. (#3102)

    Internal improvements

    • Cargo JSON output is now streamed directly into the binary list, making binary listing around 6% faster on large workspaces. (#3131) Thanks cornmander for your first contribution!
    Open source →
  16. 0.9.129 22 Feb 2026
    Release notes

    Changed

    • --show-progress=only now behaves like the default auto in non-interactive mode, showing successful tests with a counter. This change was made because only is primarily intended for interactive scenarios. (#3087)
    • The MSRV for building nextest has been updated to Rust 1.91.

    Fixed

    • Setup scripts that write NEXTEST-prefixed environment variables to $NEXTEST_ENV now properly report failure. Previously, the setup script would be reported as successful despite invalid variables, and tests would still run. (#3094)

    Internal improvements

    • Replay output is now only loaded from the archive when needed. This makes replays around 10-15% faster. (#3090)
    • Switched from the zip crate to eazip to address repeated semver breakage in the zip crate. (#3093)
    Open source →
  17. 0.9.128 19 Feb 2026
    Release notes

    Fixed

    Updated the zip crate to 8.0.0 since versions 7.3.0 and 7.4.0 were yanked.

    Open source →
  18. 0.9.127 13 Feb 2026
    Release notes

    Added

    • A new --partition slice:m/n mode for partitioning test runs. Sliced partitioning distributes tests evenly across shards regardless of how tests are distributed across binaries. This addresses the issue where count:m/n operates per-binary, leading to uneven shard sizes when tests span multiple binaries of varying sizes. (#3052)

      The existing count:m/n partitioner is now deprecated in favor of slice:m/n. Hashed sharding (hash:m/n) continues to be available for use cases where stability across test additions/removals matters more than even distribution.

    • Replay and rerun commands (cargo nextest replay, cargo nextest run -R) now accept portable recordings from pipes and process substitutions. For example, cargo nextest run -R <(curl url) now works. (#3071)

    Changed

    • Nextest no longer creates the store directory unless JUnit output is enabled. This is a step towards deprecating the store directory in favor of portable recordings. (#3053)

    Fixed

    • Fixed display of file sizes near unit boundaries (e.g. sizes near 1 KiB or 1 MiB) in recording output. (#3072)
    Open source →
  19. 0.9.126 04 Feb 2026
    Release notes

    Changed

    • Recorded test runs are now stored in the system state directory rather than the cache directory, since they are not regenerable. (#3043)

      Platform New location
      Linux, macOS, and other Unix $XDG_STATE_HOME/nextest/ or ~/.local/state/nextest/
      Windows %LOCALAPPDATA%\nextest\ (unchanged)

      The store location can now be overridden via NEXTEST_STATE_DIR (previously NEXTEST_CACHE_DIR).

      For this release, records in the cache directory will be automatically migrated on the next nextest run. Since this feature is experimental, the migration path will be removed soon (in the next 1-2 releases).

    Open source →
  20. 0.9.125 04 Feb 2026
    Release notes

    Added

    • New cargo nextest store export command to export recorded runs as portable recordings. Portable recordings are zip archives that can be shared and uploaded as CI artifacts. (#3010)

    • cargo nextest replay, cargo nextest run -R, and cargo nextest store info now accept paths to portable recordings (.zip files) in addition to run IDs. This enables replaying and rerunning test results from exported archives, including those downloaded from CI. (#3012)

    • Nextest now publishes binaries for aarch64-unknown-linux-musl, providing a statically-linked ARM64 Linux binary with no runtime library dependencies. Thanks altendky for your first contribution! (#3025)

    Changed

    • USDT tracing probes are now an optional default feature, usdt. This fixes cross-compilation for some targets. Thanks konstin for your first contribution! (#3027)

    Fixed

    • In replay mode, when output was not captured during recording (e.g. with --no-capture), nextest now shows a "(output not captured)" message rather than blank output. (#3028)

    Other

    • Published a design document describing how nextest does records, replays and reruns. The audience for this document is nextest contributors and curious readers. We hope you enjoy it!

    Security

    • Update bytes crate to v1.11.1 for a security fix. (#3032)
    Open source →
  21. 0.9.124 25 Jan 2026
    Release notes

    Fixed

    The unsupported install mechanism, cargo install cargo-nextest without --locked, now fails with a helpful error message asking you to use cargo install --locked cargo-nextest.

    Note that this unsupported method was broken with version 0.9.123 due to a dependency update, resulting in several issues being filed. We hope that the new mechanism results in clearer, more helpful guidance.

    Open source →
  22. 0.9.123 23 Jan 2026
    Release notes

    This is a major release with several new features. If you run into issues, please file a bug.

    Added

    • Major new feature: experimental support for recording, replaying, and rerunning test runs. Enable by adding record = true to the [experimental] section in user config, or by setting NEXTEST_EXPERIMENTAL_RECORD=1.

      Once enabled, recording can be turned on by adding enabled = true to the [record] section in user config. Recorded runs are stored in the system cache directory.

      New commands:

      • cargo nextest replay: Replay a test run (by default, the latest completed run).
      • cargo nextest run -R latest: Rerun tests that failed the last time.
      • cargo nextest store list: List all recorded runs.
      • cargo nextest store info: Show details about a specific run.
      • cargo nextest store prune: Prune old recorded runs.
    • A new --user-config-file option (environment variable NEXTEST_USER_CONFIG_FILE) allows explicit control over user configuration loading. Pass a path to a specific config file, or none to skip user config entirely.

    • A new --cargo-message-format option enables live streaming of Cargo's JSON messages to standard out. This feature is equivalent to cargo test --message-format.

    Changed

    • The experimental section in repository config can now also be a table, not just an array. The previous array syntax is deprecated but still supported. For example:

      # New style (recommended).
      [experimental]
      benchmarks = true
      
      # Old style (deprecated)
      experimental = ["benchmarks"]
      

      Note that user configuration's experimental is always a table. The array syntax is not supported in that case.

      This change enables upcoming config set support over the command line.

    • When a config file specifies both a future nextest-version and an unknown experimental feature, the version error now takes precedence. This produces clearer error messages for users running older nextest versions.

    Fixed

    • Fixed another panic with on-timeout = "pass" in a different code path than the 0.9.117 fix. Thanks gakonst for your first contribution! (#2940)
    Open source →
  23. 0.9.123-b.4 23 Jan 2026 pre-release

    Nothing published for this version

  24. 0.9.123-b.3 21 Jan 2026 pre-release

    Nothing published for this version

  25. 0.9.123-b.2 19 Jan 2026 pre-release

    Nothing published for this version

  26. 0.9.123-b.1 18 Jan 2026 pre-release

    Nothing published for this version

  27. 0.9.122 14 Jan 2026
    Release notes

    Added

    • iTerm now supports the OSC 9;4 progress protocol for progress bar integration. Thanks case for your first contribution!

    Fixed

    • Fixed an issue where the progress bar displayed stale statistics during test runs (#2930).
    Open source →
  28. 0.9.121 12 Jan 2026
    Release notes

    Fixed

    • In custom target JSONs, panic-strategy = "immediate-abort" now parses correctly (#2922).
    Open source →
  29. 0.9.120 08 Jan 2026
    Release notes

    Added

    Open source →
  30. 0.9.119-b.2 05 Jan 2026 pre-release

    Nothing published for this version

  31. 0.9.119-b.1 05 Jan 2026 pre-release

    Nothing published for this version

  32. 0.9.118 04 Jan 2026
    Release notes

    Added

    • Nextest now supports user configuration for personal preferences. User config is stored in ~/.config/nextest/config.toml (or %APPDATA%\nextest\config.toml on Windows) and includes the following settings:

      • show-progress: Controls progress display during test runs.
      • max-progress-running: Maximum number of running tests to show in the progress bar.
      • input-handler: Enable or disable keyboard input handling.
      • output-indent: Enable or disable output indentation for captured test output.

      User config settings are lower priority than CLI arguments and environment variables. For details, see User configuration.

    Fixed

    • Fixed an issue where nextest could hang when tests spawn interactive shells (e.g., zsh -ic) that call tcsetpgrp to become the foreground process group. Nextest now ignores SIGTTIN and SIGTTOU signals while input handling is active. (#2884)
    Open source →
  33. 0.9.117 02 Jan 2026
    Release notes

    Added

    • Experimental support for running benchmarks via cargo nextest bench. Set NEXTEST_EXPERIMENTAL_BENCHMARKS=1 to enable.

      Benchmarks have a separate configuration namespace with dedicated slow-timeout and global-timeout settings:

      [profile.default]
      bench.slow-timeout = { period = "120s", terminate-after = 2 }
      bench.global-timeout = "1h"
      

      Per-test overrides are also supported within the bench section.

    • The list command now supports --message-format oneline for grep-friendly output.

    • Nextest now accepts --target host-tuple to explicitly target the host platform, mirroring Cargo's new feature. This resolves to the detected host triple at runtime. (#2872)

    Changed

    • The default output style for cargo nextest list has been changed to a new auto value, which is equivalent to human (the previous default) if standard output is an interactive terminal, and oneline if not.

    Fixed

    • Fixed a panic when reporting test results with on-timeout = "pass" in slow-timeout configuration.

    • Retry attempts for tests that both fail and leak handles now correctly display as TRY n FL+LK instead of TRY n FAIL.

    Open source →
  34. 0.9.116 27 Dec 2025
    Release notes

    Added

    • Nextest now sets several new environment variables for each test execution:

      • NEXTEST_TEST_NAME: The name of the test being run.
      • NEXTEST_ATTEMPT: The current attempt number (starting from 1).
      • NEXTEST_TOTAL_ATTEMPTS: The total number of attempts that will be made.
      • NEXTEST_BINARY_ID: The binary ID of the test.
      • NEXTEST_ATTEMPT_ID: A unique identifier for this specific attempt.
      • NEXTEST_STRESS_CURRENT and NEXTEST_STRESS_TOTAL: For stress tests, the current and total iteration counts.

      These variables allow tests to be aware of their execution context, enabling conditional behavior based on retry attempts or stress test iterations.

      Thanks liranco for your first contribution! (#2797)

    • With cargo nextest run --verbose, nextest now displays the command line used to run each test. Thanks dangvu0502 for your first contribution! (#2800)

    • A new glossary page documents key nextest terminology.

    Changed

    • The internal __NEXTEST_ATTEMPT environment variable has been removed and replaced by the public NEXTEST_ATTEMPT variable.
    Open source →
  35. 0.9.115 15 Dec 2025
    Release notes

    Added

    • Nextest profiles now support inheritance via the inherits key. For example:

      [profile.ci]
      retries = 2
      
      [profile.ci-extended]
      inherits = "ci"
      slow-timeout = "120s"
      

      Thanks asder8215 for your first contribution! (#2786)

    • A new on-timeout option for slow-timeout allows tests that time out to be treated as successes instead of failures. This is useful for fuzz tests, or other tests where a timeout indicates no failing input was found. For example:

      [[profile.default.overrides]]
      filter = 'package(fuzz-targets)'
      slow-timeout = { period = "30s", terminate-after = 1, on-timeout = "pass" }
      

      Tests that time out and pass are marked TMPASS. See Configuring timeout behavior for more information.

      Thanks eduardorittner for your first contribution! (#2742)

    Changed

    • MSRV updated to Rust 1.89.
    Open source →
  36. 0.9.114 19 Nov 2025
    Release notes

    Added

    • A new config option --tracer enables running a test under a system call tracer like strace or truss. This mode is similar to --debugger added in version 0.9.113, but is optimized for non-interactive sessions. See this table for a comparison of behaviors.
    Open source →
  37. 0.9.113 16 Nov 2025
    Release notes

    Added

    • Nextest now supports running tests under a debugger. Use --debugger to run a single test under gdb, lldb, WinDbg, CodeLLDB in Visual Studio Code, and other debuggers, while preserving all the environment setup done by nextest.

      Nextest's debugger support will likely see some iteration and improvements over time. If it's missing a feature, please open a feature request, or even better, send a pull request!

    • Nextest now sets NEXTEST_BIN_EXE_* environment variables with hyphens in binary names replaced by underscores, in addition to the existing variables with hyphens. This works around some shells and debuggers that drop environment variables containing hyphens. (#2777)

    Fixed

    • Fixed a panic when attempting to display progress during retries. (#2771)
    • With stress tests, the progress bar no longer overwrites unrelated output. (#2765)
    • During the list phase, invalid output lines with control characters in them are now properly escaped. (#2772)

    Other

    • Nextest's GitHub releases are now marked immutable, so for a particular version, its release binaries can't be changed by anybody after publication. (Release binaries have never changed as a matter of policy. The improvement here is that for 0.9.113 and future versions, this fact is now cryptographically attested by GitHub.)
    Open source →
  38. 0.9.113-b.1 16 Nov 2025 pre-release

    Nothing published for this version

  39. 0.9.111 04 Nov 2025
    Release notes

    Added

    • Nextest now supports immediately terminating currently-running tests on failure. Set fail-fast = { max-fail = 1, terminate = "immediate" } in your configuration, or use --max-fail=1:immediate, to terminate running tests as soon as the first test fails.

    Changed

    • In interactive terminals, nextest now shows 8 running tests by default underneath the progress bar. Control the maximum number of tests displayed with the --max-progress-running option.

      As part of this change, --show-progress=running is now an alias for --show-progress=bar. To only show running tests, use --show-progress=only.

    • Non-UTF-8 test output is now encoded with String::from_utf8_lossy before being printed out to the terminal. This should generally not be a visible change, since most tests produce UTF-8 output.

    • When the progress bar is displayed, nextest now writes to terminal output every 50ms.

    Fixed

    • A number of performance improvements to running test output. Thanks glehmann for your work on polishing this feature!
    Open source →
  40. 0.9.110 31 Oct 2025
    Release notes

    Added

    Fixed

    • With --show-progress=running, the global progress bar now stays in place more often, providing a smoother visual experience.

    Changed

    • MSRV for building nextest updated to Rust 1.88.

    Internal improvements

    • USDT probes now include additional context: global_slot, group_slot, and test_group fields for test attempt events.
    • Miscellaneous performance improvements to --show-progress=running and only.
    Open source →
  41. 0.9.109 30 Oct 2025
    Release notes

    Added

    • A new running progress mode that shows currently running tests in addition to the progress bar. Use --show-progress=running to see both running tests and information about successful tests, or --show-progress=only for a more compact output showing only running tests, without displaying any output related to successful tests.

      Thanks glehmann for your first contribution!

    • The cargo nextest archive command now supports binary filtering via the --filterset or -E options. This allows you to reduce the size of archives by including only a subset of test binaries. Note that test binaries are not executed during archiving, so test() predicates are not supported.

      Thanks clundin55 for your first contribution!

    Fixed

    • Improvements to --show-progress=counter for better output formatting and reliability.

    Other improvements

    • USDT probes now include additional events:
      • Updated run-start and run-done events to include stress run information.
      • New stress-sub-run-start and stress-sub-run-done events for tracking individual stress run iterations.
      • Test completion events now include stdout_len and stderr_len fields for output size tracking.
    Open source →
  42. 0.9.108 21 Oct 2025
    Release notes

    Added

    • Support for USDT (User Statically Defined Tracing) probes for observability and debugging. USDT probes allow tools like DTrace and bpftrace to trace nextest's internal operations. The initial probes cover test execution lifecycle events.

      For more information, see the USDT documentation.

    • In CI, test status lines now include a counter showing the number of tests that have been executed (#2618). Thanks bobrik for your first contribution!

    Changed

    • For leaky tests, default leak timeout increased from 100ms to 200ms.
    • MSRV for building nextest updated to Rust 1.87.
    Open source →
  43. 0.9.108-b.1 21 Oct 2025 pre-release

    Nothing published for this version

  44. 0.9.106 13 Oct 2025
    Release notes

    Fixed

    Changed

    • Update builtin list of targets to Rust 1.90.
    Open source →
  45. 0.9.105 02 Oct 2025
    Release notes

    Changed

    On Windows, job objects are now created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. This enables test processes to have their children be assigned a different job object, which is particularly relevant on Windows 7 since that platform doesn't have nested job objects.

    Thanks to Guiguiprim for the contribution!

    Open source →
  46. 0.9.104 15 Sep 2025
    Release notes

    Added

    • For stress tests, summary lines now indicate the number of iterations passed and/or failed.

    Changed

    • Always forward --config arguments to Cargo invocations. Thanks to benschulz for your first contribution!
    • Internal dependency update: target-spec updated to 3.5.1, updating built-in targets to Rust 1.89.
    Open source →
  47. 0.9.103 25 Aug 2025
    Release notes

    Added

    • Initial support for stress tests: running tests a large number of times in a loop.

    Changed

    • The libtest-json-plus output now produces test results immediately rather than at the end of the run. This is allowed by the fact that with the libtest-json-plus output, it is possible to distinguish between different test binaries based on the additional nextest property.

      Thanks to dnbln for your first contribution!

    Fixed

    • The heuristic detection for panicked at in tests now handles the new output format in Rust nightlies (Rust 1.91 and above): on Unix platforms, the thread ID is now also included.

      Thanks again to dnbln for fixing this.

    Open source →
  48. 0.9.102 03 Aug 2025
    Release notes

    Added

    • Windows releases are now digitally signed. Thanks to the SignPath Foundation for signing nextest's Windows builds.

    Known issues

    • Nextest's test suite can nondeterministically hang on machines with a large number of cores. This is a bug in Cargo 1.88, and is fixed in Cargo 1.89. See #2463 for more information.
    Open source →
  49. 0.9.102-rc.2 03 Aug 2025 pre-release

    Nothing published for this version

  50. 0.9.101 12 Jul 2025
    Release notes

    Fixed

    • Restored compatibility with Cargo's unstable bindeps feature in some circumstances.

    Changed

    • Tokio downgraded to 1.45.0 to try and get to the bottom of hangs in some configurations. If you encounter nextest 0.9.100 or 0.9.101 getting stuck, please comment in #2463. Thank you!
    • MSRV updated to Rust 1.86.
    Open source →
  51. 0.9.100 07 Jul 2025
    Release notes

    Added

    • A new global-timeout option allows setting a global timeout for the entire run. This is an alternative to the Unix timeout command that also works on Windows.

      For more information, see Setting a global timeout.

      Thanks to robabla for your first contribution!

    • Nextest now reports progress to the terminal emulator for display in places like the task bar, similar to Cargo 1.87 and above. Terminal progress integration uses OSC 9;4, and is enabled by default in Windows Terminal, ConEmu, and WezTerm.

      To configure this, use Cargo's term.progress.term-integration option.

    Open source →
  52. 0.9.99 16 Jun 2025
    Release notes

    Added

    • Script commands now support relative-to = "workspace-root". This has minimal impact on setup scripts since they always run relative to the workspace root, but allows wrapper scripts to be invoked more easily.

    Changed

    • On remapping workspace or target directories, they're now converted to absolute ones. This should not have user-visible effects.
    Open source →
  53. 0.9.98 06 Jun 2025
    Release notes

    Added

    Changed

    • Setup scripts are now specified within the [scripts.setup] table, for example [scripts.setup.db-generate]. The previous [script.db-generate] configuration will continue to work for a short while.
    Open source →
  54. 0.9.98-b.1 05 Jun 2025 pre-release

    Nothing published for this version

  55. 0.9.97 30 May 2025
    Release notes

    Fixed

    • Worked around a Rust type inference bug as part of a dependency update (#2370).

    Changed

    • The MSRV for compiling nextest is now Rust 1.85. (The MSRV for running tests remains unchanged.)
    Open source →
  56. 0.9.97-b.2 19 May 2025 pre-release

    Nothing published for this version

  57. 0.9.96 15 May 2025
    Release notes

    Miscellaneous

    • Pre-built binaries are now built with Rust 1.87, which is the first version to support posix_spawn-based process spawning on illumos.
    Open source →
  58. 0.9.95 30 Apr 2025
    Release notes

    Added

    You can now mark leaky tests as failed rather than passed. The default is still to treat them as passed. For more, see Marking leaky tests as failures.

    Changed

    Several display formatting improvements with a focus on visual clarity and reduced UI clutter:

    • Captured output (typically for failing tests) is now indented by 4 spaces, for easier-to-scan logs. This can be disabled with the new --no-output-indent option, or by setting NEXTEST_NO_OUTPUT_INDENT=1 in the environment.
    • If tests abort or fail through unexpected means (e.g. due to a signal), nextest now prints out a status line explaining what happened. For example, (test aborted with signal 6: SIGABRT).

    Fixed

    Fixed an occasional hang on Linux with libtest JSON output. For more details, see #2316.

    Open source →
  59. 0.9.95-rc.2 29 Apr 2025 pre-release

    Nothing published for this version

  60. 0.9.95-rc.1 29 Apr 2025 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive