docs: add nextest as the fast local test run

The local gate serializes tests because of a native font race. nextest
gives each test its own process, so the whole suite can run in parallel
while iterating. It is local only: it skips doctests and the isolated
render tests, so the gate stays as it is. Add it to the Nix shell.
This commit is contained in:
devmobasa committed 2026-10-30 19:25:15 +01:00
1 parent 8d0c13f946
commit 1dafb9385b
3 files changed
+12

No files matched your search

+1
View File
@@ -54,6 +54,7 @@
- Dependency changes must satisfy `deny.toml`. A new license or duplicate version needs an entry there with its reason. - Dependency changes must satisfy `deny.toml`. A new license or duplicate version needs an entry there with its reason.
## Validation ## Validation
- For a fast full-suite run while iterating, use `cargo nextest run --workspace --all-features`. Each test gets its own process, so it runs in parallel despite the native-font race that keeps the gate serial. It skips doctests and the isolated render tests, so it does not replace the gate.
- Full local CI is `./tools/lint-and-test.sh`. It needs the .NET SDK selected by `global.json`. Without it, `cargo test` still runs the Rust source guards in `tests/repository_guards` (process sites, config writers, shared dependencies, use statements, no Python), but not the C# checks, including the source-coverage check that finds `.rs` files Cargo never compiles. - Full local CI is `./tools/lint-and-test.sh`. It needs the .NET SDK selected by `global.json`. Without it, `cargo test` still runs the Rust source guards in `tests/repository_guards` (process sites, config writers, shared dependencies, use statements, no Python), but not the C# checks, including the source-coverage check that finds `.rs` files Cargo never compiles.
- That script runs the C# repository checks (assets, version, nixpkgs recipe, source coverage, legacy tools), the C# tool tests (which also run the packaging shell contracts), `cargo fmt --all -- --check`, clippy with all targets/features, all-feature tests, and no-default-feature tests. - That script runs the C# repository checks (assets, version, nixpkgs recipe, source coverage, legacy tools), the C# tool tests (which also run the packaging shell contracts), `cargo fmt --all -- --check`, clippy with all targets/features, all-feature tests, and no-default-feature tests.
- Run `git diff --check` before handoff. When relevant files are untracked and the index must stay unchanged, check those files directly as well. - Run `git diff --check` before handoff. When relevant files are untracked and the index must stay unchanged, check those files directly as well.
+10
View File
@@ -125,6 +125,16 @@ cargo test session::
cargo test -p wayscriber-configurator cargo test -p wayscriber-configurator
``` ```
For a fast run of the whole suite, use [cargo-nextest](https://nexte.st/), which the Nix shell
includes. It gives each test its own process, so it can run in parallel despite the native font
race that keeps the local CI entry point serial:
```bash
cargo nextest run --workspace --all-features
```
It skips doctests and the isolated render tests, so it does not replace that entry point.
Before submitting a broad or cross-package change, run the local CI entry point: Before submitting a broad or cross-package change, run the local CI entry point:
```bash ```bash
+1
View File
@@ -33,6 +33,7 @@
developmentInputs = with pkgs; [ developmentInputs = with pkgs; [
rustToolchain rustToolchain
cargo-deny cargo-deny
cargo-nextest
util-linux util-linux
pkg-config pkg-config
cairo cairo