mcpField
W
write-rust-tests

write-rust-tests

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

关于 write-rust-tests

write-rust-tests 是用于在指定 Rust crate 或文件中编写测试的 skill。它依据 rust-tests-guidelines,结合覆盖情况选择测试路径,并避免冗余用例。

主要功能

  1. 01接收 crate 或文件路径
  2. 02覆盖公共 API 和边界情况
  3. 03通过覆盖率检查查找缺口
  4. 04编写前识别独有分支
  5. 05避免冗余测试和简单委托测试

适用场景

  1. 01为 Rust crate 或文件添加测试
  2. 02查找尚未覆盖的行为
  3. 03检查拟新增测试是否重复
  4. 04验证边界情况和错误路径

安装

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

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

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

详细介绍

编写 Rust 测试

为 Rust 代码编写新测试。

参数

  • <path>:Rust crate 或文件的路径。
  • <path 1> <path 2>:多个 crate/文件路径。

如果路径不包含 src/,则假定该路径位于 src/redisearch_rs 目录中。例如,numeric_range_tree 对应 src/redisearch_rs/numeric_range_tree。 如果路径指向一个目录,则考虑该目录中的所有 Rust 文件。

指南

生成的测试必须遵循 /rust-tests-guidelines 中的指南。

测试内容

确保对所有公共 API 进行全面测试,包括边界情况、错误条件和分支。 使用 /check-rust-coverage 确定哪些代码行尚未被测试覆盖。

避免冗余测试

编写每个测试之前,明确指出该测试将覆盖哪个现有测试尚未覆盖的分支或代码路径。未覆盖某行代码本身不足以构成理由——请思考该行未被覆盖的原因,以及是否可以通过已测试的入口访问它。

如果两个测试覆盖了被测代码中的相同分支集合,则它们是冗余的。若测试仅在不会改变控制流的输入值上有所不同,则不构成不同的场景。

不要为以下内容编写独立测试:

  • 简单的 trait 委托——例如 Default、From 或其他仅将调用委托给已测试构造函数的单行 trait 实现,因为它们会通过该构造函数得到覆盖。

添加测试后,再次检查每个新测试是否至少覆盖了其他任何测试(现有或新编写)都未覆盖的一个分支。删除不符合条件的测试。

评论

支持 Markdown