关于 write-rust-tests
write-rust-tests 是用于在指定 Rust crate 或文件中编写测试的 skill。它依据 rust-tests-guidelines,结合覆盖情况选择测试路径,并避免冗余用例。
主要功能
- 01接收 crate 或文件路径
- 02覆盖公共 API 和边界情况
- 03通过覆盖率检查查找缺口
- 04编写前识别独有分支
- 05避免冗余测试和简单委托测试
适用场景
- 01为 Rust crate 或文件添加测试
- 02查找尚未覆盖的行为
- 03检查拟新增测试是否重复
- 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