Rust 入门:测试覆盖率详解(Test Coverage)
Rust 入门:测试覆盖率详解(Test Coverage)
·
文章目录
Rust 入门:测试覆盖率详解(Test Coverage)
写测试很重要,但仅仅“写了”还不够。我们还要知道:测试到底覆盖了代码的哪些部分?是否还有遗漏?
这就用到了:测试覆盖率(test coverage)。它能帮我们看清测试是否真正测试到了关键代码路径。
一、什么是测试覆盖率?
测试覆盖率就是:你的测试触发并运行了多少百分比的代码。
举个例子:
- 如果你有 100 行函数代码,
- 但测试只触发了 40 行,
- 那你的覆盖率就是 40%。
Rust 本身不内建测试覆盖率工具,但可以借助外部工具来完成。
二、最常用工具:cargo-tarpaulin
这是目前 Rust 社区使用最广泛的测试覆盖率工具。
1. 安装
cargo install cargo-tarpaulin
2. 生成覆盖率报告
cargo tarpaulin
运行后会输出类似这样:
Running tests...
Coverage Results:
files: 3
lines: 120
covered lines: 90
coverage: 75.0%
三、生成 HTML 可视化报告
让报告更直观(需要加 --out Html):
cargo tarpaulin --out Html
生成的报告默认在 tarpaulin-report.html 文件里,浏览器打开查看。
四、测试哪些内容会被统计?
src/lib.rs和其他模块中公开函数的逻辑 ✅- 单元测试(
#[test]) ✅ - 集成测试(放在
tests/文件夹) ✅ - 宏展开、泛型代码 ✅(部分情况下,泛型可能需要特别处理)
五、提示:常见问题和建议
- 使用
--tests可以只统计集成测试的覆盖率。 - 如果某些文件总是 0%,可能是没被模块引入或者测试没触发逻辑。
- 不建议强求 100% 覆盖率,但关键代码路径应至少覆盖。
六、小结
| 工具/概念 | 用法或说明 |
|---|---|
| cargo-tarpaulin | Rust 中最常用的覆盖率工具 |
| 安装命令 | cargo install cargo-tarpaulin |
| 运行并查看覆盖率 | cargo tarpaulin |
| 生成 HTML 报告 | cargo tarpaulin --out Html |
| 覆盖率重要性 | 帮助你找出测试盲区,提高代码可靠性 |
测试写了 ≠ 覆盖到了!
利用测试覆盖率工具,真正做到:写测试 -> 跑测试 -> 查缺补漏。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)