name: run-rust-tests description: 在修改后运行 Rust 测试以验证正确性
Rust 测试技能
在修改后运行 Rust 测试以验证正确性。
参数
- 无参数:分析更改并仅运行受影响包的测试
all:运行所有 Rust 测试<crate>:运行特定包的测试(例如,/run-rust-tests hyperloglog)<crate> <test>:运行包中的特定测试(例如,/run-rust-tests hyperloglog test_merge)
提供的参数:$ARGUMENTS
用法
在修改 Rust 代码后运行此技能以确保测试通过。
指令
- 检查上面提供的参数:
- 如果参数为空,确定受影响的包:
- 使用
git status和git diff --name-only检查src/redisearch_rs/中哪些文件被修改 - 将每个修改的文件映射到其包(在
src/redisearch_rs/下的目录名称,例如,src/redisearch_rs/hyperloglog/src/lib.rs→hyperloglog) - 为每个受影响的包运行测试:
cd src/redisearch_rs && cargo nextest run -p <crate1> -p <crate2> ... - 如果在
src/redisearch_rs/中没有 Rust 文件被修改,或者无法确定受影响的包,运行所有测试
- 使用
- 如果提供了
all,运行所有 Rust 测试:cd src/redisearch_rs && cargo nextest run - 如果提供了包名称,运行该包的测试:
cd src/redisearch_rs && cargo nextest run -p <crate_name> - 如果同时提供了包和测试名称,运行特定测试:
cd src/redisearch_rs && cargo nextest run -p <crate_name> <test_name>
- 如果参数为空,确定受影响的包:
- 如果测试失败:
- 仔细阅读错误输出
- 修复失败的测试或导致失败的代码
- 重新运行测试以验证修复
常见测试命令
# 测试特定包
cd src/redisearch_rs && cargo nextest run -p hyperloglog
cd src/redisearch_rs && cargo nextest run -p inverted_index
cd src/redisearch_rs && cargo nextest run -p trie_rs
# 运行特定测试
cd src/redisearch_rs && cargo nextest run -p <crate_name> <test_name>
# 在 miri 下运行测试(用于检测未定义行为)
cd src/redisearch_rs && cargo +nightly miri test