centos 下的 rust 测试框架与工具
在 centos 等 linux 环境中,rust 的测试生态与平台无关,常用框架可分为:内置测试、属性与模糊测试、模拟与打桩、异步测试辅助、基准测试、覆盖率与 e2e 等类型,均可在 centos 直接使用。
常用框架与工具一览
| 分类 | 代表框架/工具 | 主要用途 | 典型场景 |
|---|---|---|---|
| 内置测试 | cargo test / libtest | 单元测试、集成测试、文档测试 | 常规业务逻辑的单元与集成验证 |
| 属性测试 | proptest、quickcheck | 自动生成大量输入进行属性验证 | 复杂函数、边界与组合输入的正确性 |
| 模糊测试 | rust-fuzz | 随机变异输入,发现崩溃与安全问题 | 解析器、协议、输入容错性 |
| 模拟与打桩 | mockall | 生成 mock 对象,隔离外部依赖 | 依赖接口的行为验证与替换 |
| 异步测试 | tokio-test | 为异步代码提供测试工具与运行时支持 | tokio 异步函数的测试 |
| http 测试 | wiremock、mockito、reqwest | 模拟 http 服务、发起 http 请求 | 外部 api 的契约/集成测试 |
| bdd 行为驱动 | cucumber (rust) | 用自然语言编写 feature 与场景 | 业务可读性强的端到端/验收测试 |
| 基准测试 | criterion、bencher | 微基准、性能回归对比 | 热点路径、算法与性能优化 |
| 覆盖率 | tarpaulin | 代码覆盖率报告 | 评估测试充分性 |
| 可视化分析 | flamegraph | 生成火焰图定位性能瓶颈 | cpu 热点与调用栈分析 |
| 服务/容器测试 | testcontainers | 在本地启动轻量容器进行集成测试 | 数据库、缓存、消息队列等外部依赖 |
| e2e 自动化 | selenium-rs | 浏览器自动化 e2e 测试 | web 应用端到端回归 |
快速上手示例
使用内置测试运行单元测试与集成测试
在代码中使用 #[cfg(test)] 与 assert! 系列宏编写测试,使用 cargo test 运行所有测试,包括 tests 目录下的集成测试与文档测试。
使用 criterion 进行基准测试
在 cargo.toml 添加依赖:
[dev-dependencies]
criterion = “0.5”
在 benches 目录编写基准,例如:
use criterion::{black_box, criterion_group, criterion_main, criterion::criterion};
fn bench_fib(c: &mut criterion::criterion) {
c.bench_function(“fib 20”, |b| b.iter(|| fibonacci(black_box(20))));
}
criterion_group!(benches, bench_fib);
criterion_main!(benches);
运行 cargo bench 生成报告,查看 target/criterion/report/index.html。
使用 mockall 进行模拟
在 cargo.toml 添加 mockall,随后在测试中使用 mock! 宏为 trait 生成 mock 实现,以替换真实依赖并设定预期调用与返回值,便于隔离测试与行为验证。
在 centos 上的安装与使用提示