cargo-mutants 帮助你提高程序的质量,它会找到那些可以被插入 bug 但不会导致任何测试失败的地方。

覆盖率测量会有帮助,但它真正告诉你的是测试 触及 了哪些代码,而不是测试是否真正 检查 了代码的行为。 Mutation 测试提供不同的信息,关于测试是否真正检查了代码的行为。

cargo-mutants 的目标是在任何 Rust 源代码树上都 易于 运行,并告诉你一些关于可能潜伏 bug 或测试可能不足的区域的 有趣 的信息。

主要的文档是用户指南:https://mutants.rs/

前提条件

cargo-mutants 可以帮助那些使用 cargo testcargo nextest run 运行的非不稳定的测试的源代码树。

安装

cargo install --locked cargo-mutants

你也可以使用 cargo-binstall 安装,或者从 GitHub releases 上的二进制文件安装。

快速开始

在 Rust 源代码目录下,只需运行:

cargo mutants

要在单个文件中生成 mutants,运行:

cargo mutants -f src/something.rs

与 CI 集成

手册包含自动在 CI 中测试 mutants 的说明和示例,包括 pull requests 的增量测试和开发分支的完整测试。

帮助改进 cargo-mutants

如果你使用 cargo-mutants 或者只是喜欢这个想法,你可以帮助它变得更好:

项目状态

截至 2025 年 1 月,这是一个积极维护的业余时间项目。 我预计大约每隔一两个月会发布releases

它目前非常有用,并且在未来还有很大的改进空间,特别是在添加新型 mutation 方面。

此软件按原样提供,不提供任何形式的保证。

延伸阅读

另请参阅: