mcpField
R
run-rust-tests

run-rust-tests

github.com/redisearch测试与质量6.2k58 次安装今天更新
代码仓库

关于 run-rust-tests

用于在代码修改后运行 Rust 测试的 Skill。默认根据变更选择受影响的 crate,也可按参数运行全部测试、指定 crate 或测试。

主要功能

  1. 01检测 Rust 变更涉及的 crate
  2. 02运行所选 crate 的测试
  3. 03支持全量或指定测试
  4. 04修复失败后重新运行测试

适用场景

  1. 01验证受影响 crate 的 Rust 修改
  2. 02运行完整 Rust 测试套件
  3. 03检查 crate 中指定的测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/redisearch/redisearch --skill run-rust-tests

安装后在 Claude Code 中输入/run-rust-tests确认已加载。

详细介绍

Rust 测试技能

进行更改后运行 Rust 测试,以验证正确性。

参数

  • 无参数:分析更改,仅运行受影响 crate 的测试
  • all:运行所有 Rust 测试
  • <crate>:运行指定 crate 的测试(例如,/run-rust-tests hyperloglog)
  • <crate> <test>:运行 crate 中的指定测试(例如,/run-rust-tests hyperloglog test_merge)

提供的参数:$ARGUMENTS

用法

修改 Rust 代码后运行此技能,确保测试通过。

说明

  1. 检查上面提供的参数:
    • 如果参数为空,确定受影响的 crate:
      1. 使用 git status 和 git diff --name-only 检查 src/redisearch_rs/ 中修改了哪些文件
      2. 将每个修改的文件映射到其 crate(即 src/redisearch_rs/ 下一级目录的名称,例如,src/redisearch_rs/hyperloglog/src/lib.rs → hyperloglog)
      3. 运行每个受影响 crate 的测试:
        cd src/redisearch_rs && cargo nextest run -p <crate1> -p <crate2> ...
        
      4. 如果 src/redisearch_rs/ 中没有 Rust 文件被修改,或者无法确定受影响的 crate,则运行所有测试
    • 如果提供了 all,运行所有 Rust 测试:
      cd src/redisearch_rs && cargo nextest run
      
    • 如果提供了 crate 名称,运行该 crate 的测试:
      cd src/redisearch_rs && cargo nextest run -p <crate_name>
      
    • 如果同时提供 crate 名称和测试名称,运行指定测试:
      cd src/redisearch_rs && cargo nextest run -p <crate_name> <test_name>
      
  2. 如果测试失败:
    • 仔细阅读错误输出
    • 修复失败的测试或导致失败的代码
    • 重新运行测试以验证修复

常用测试命令

# Test specific crate
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

# Run a specific test
cd src/redisearch_rs && cargo nextest run -p <crate_name> <test_name>

# Run tests under miri (for undefined behavior detection)
cd src/redisearch_rs && cargo +nightly miri test

评论

支持 Markdown