Installing pre-built binaries¶
The quickest way to get going with nextest is to download a pre-built binary for your platform.
Downloading and installing from your terminal¶
The instructions below are suitable for both end users and CI. These links will stay stable.
If you have cargo-binstall available:
cargo binstall cargo-nextest --secure
Info
The command below assumes that your Rust installation is managed via rustup. You can extract the archive to a different directory in your PATH if required.
If you'd like to stay on the 0.9 series to avoid breaking changes (see the stability policy for more), replace latest
in the URL with 0.9
.
Run in a terminal:
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
Info
The command below assumes that your Rust installation is managed via rustup. You can extract the archive to a different directory in your PATH if required.
If you'd like to stay on the 0.9 series to avoid breaking changes (see the stability policy for more), replace latest
in the URL with 0.9
.
Run in a terminal:
curl -LsSf https://get.nexte.st/latest/linux-arm | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
Info
The command below assumes that your Rust installation is managed via rustup. You can extract the archive to a different directory in your PATH if required.
If you'd like to stay on the 0.9 series to avoid breaking changes (see the stability policy for more), replace latest
in the URL with 0.9
.
Run in a terminal:
curl -LsSf https://get.nexte.st/latest/mac | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
This will download a universal binary that works on both Intel and Apple Silicon Macs.
Info
The command below assumes that your Rust installation is managed via rustup. You can extract the archive to a different directory in your PATH if required.
If you'd like to stay on the 0.9 series to avoid breaking changes (see the stability policy for more), replace latest
in the URL with 0.9
.
Run in PowerShell:
$tmp = New-TemporaryFile | Rename-Item -NewName { $_ -replace 'tmp$', 'zip' } -PassThru
Invoke-WebRequest -OutFile $tmp https://get.nexte.st/latest/windows
$outputDir = if ($Env:CARGO_HOME) { Join-Path $Env:CARGO_HOME "bin" } else { "~/.cargo/bin" }
$tmp | Expand-Archive -DestinationPath $outputDir -Force
$tmp | Remove-Item
Or, using a Unix shell, curl
, and tar
natively on Windows (e.g. shell: bash
on GitHub Actions):
curl -LsSf https://get.nexte.st/latest/windows-tar | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
Windows Subsystem for Linux (WSL) users should follow the Linux x86_64 instructions.
Other platforms
curl -LsSf https://get.nexte.st/latest/freebsd | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
curl -LsSf https://get.nexte.st/latest/illumos | gunzip | tar xf - -C ${CARGO_HOME:-~/.cargo}/bin
As of 2022-12, the current version of illumos tar has a bug where tar zxf
doesn't work over standard input.
Community-maintained binaries¶
These binaries are maintained by the community—thank you!
Run in a terminal on macOS or Linux:
brew install cargo-nextest
Run in a terminal:
pacman -S cargo-nextest
Using pre-built binaries in CI¶
Pre-built binaries can be used in continuous integration to speed up test runs.
Using nextest in GitHub Actions¶
The easiest way to install nextest in GitHub Actions is to use the Install Development Tools action maintained by Taiki Endo.
To install the latest version of nextest, add this to your job after installing Rust and Cargo:
- uses: taiki-e/install-action@nextest
See this in practice with nextest's own CI.
The action will download pre-built binaries from the URL above and add them to .cargo/bin
.
To install a version series or specific version, use this instead:
- uses: taiki-e/install-action@v2
with:
tool: nextest
## version (defaults to "latest") can be a series like 0.9:
# tool: nextest@0.9
## version can also be a specific version like 0.9.11:
# tool: nextest@0.9.11
ANSI color codes
GitHub Actions supports ANSI color codes. To get color support for nextest (and Cargo), add this to your workflow:
env:
CARGO_TERM_COLOR: always
For a full list of environment variables supported by nextest, see Environment variables.
Other CI systems¶
Install pre-built binaries on other CI systems by downloading and extracting the respective archives, using the commands above as a guide. See Release URLs for more about how to specify nextest versions and platforms.
Documentation
If you've made it easy to install nextest on another CI system, please feel free to submit a pull request with documentation.
Release URLs¶
The latest nextest release is available at:
- get.nexte.st/latest/linux for Linux x86_64, including Windows Subsystem for Linux (WSL)1
- get.nexte.st/latest/linux-arm for Linux aarch641
- get.nexte.st/latest/mac for macOS, both x86_64 and Apple Silicon
- get.nexte.st/latest/windows for Windows x86_64
Other platforms
Nextest's CI isn't run on these platforms -- these binaries most likely work but aren't guaranteed to do so.
- get.nexte.st/latest/linux-musl for Linux x86_64, with musl libc2
- get.nexte.st/latest/windows-x86 for Windows i686
- get.nexte.st/latest/freebsd for FreeBSD x86_64
- get.nexte.st/latest/illumos for illumos x86_64
These archives contain a single binary called cargo-nextest
(cargo-nextest.exe
on Windows). Add this binary to a location on your PATH.
For a full specification of release URLs, see Release URLs.
-
The standard Linux binaries target glibc, and have a minimum requirement of glibc 2.27 (Ubuntu 18.04). ↩↩
-
Rust's musl target currently has a bug that Rust's glibc target doesn't have. This bug means that nextest's linux-musl binary has slower test runs and is susceptible to signal-related races. Only use the linux-musl binary if the standard Linux binary doesn't work in your environment. ↩