Rust Test Skill
Run Rust tests after making changes to verify correctness.
Arguments
- No arguments: Analyze changes and run tests for affected crates only
all: Run all Rust tests<crate>: Run tests for specific crate (e.g.,/run-rust-tests hyperloglog)<crate> <test>: Run specific test in crate (e.g.,/run-rust-tests hyperloglog test_merge)
Arguments provided: $ARGUMENTS
Usage
Run this skill after modifying Rust code to ensure tests pass.
Instructions
- Check the arguments provided above:
- If arguments are empty, determine affected crates:
- Check which files were modified in
src/redisearch_rs/usinggit statusandgit diff --name-only - Map each modified file to its crate (the directory name directly under
src/redisearch_rs/, e.g.,src/redisearch_rs/hyperloglog/src/lib.rs→hyperloglog) - Run tests for each affected crate:
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p <crate1> -p <crate2> ... - If no Rust files were modified in
src/redisearch_rs/, or if you cannot determine affected crates, run all tests
- Check which files were modified in
- If
allis provided, run all Rust tests:cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml - If a crate name is provided, run tests for that crate:
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p <crate_name> - If both crate and test name are provided, run the specific test:
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p <crate_name> <test_name>
- If arguments are empty, determine affected crates:
- If tests fail:
- Read the error output carefully
- Fix the failing tests or the code causing failures
- Re-run tests to verify the fix
Common Test Commands
# Test specific crate
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p hyperloglog
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p inverted_index
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p trie_rs
# Run a specific test
cargo nextest run --manifest-path src/redisearch_rs/Cargo.toml -p <crate_name> <test_name>
# Run tests under miri (for undefined behavior detection)
cargo +nightly miri test --manifest-path src/redisearch_rs/Cargo.toml