SuperAPI AI 工具集

cargo-nextest

测试与质量

查看项目

更新于 10-15 23:49

技能介绍

cargo-nextest 是面向 Rust 的快速、可靠测试运行器,默认让每个测试在独立进程中运行,从而获得更好的隔离性、真正的并行执行和故障隔离。

用途:并行运行测试、按包/名称/模式过滤测试、在 CI 中配置不稳定测试重试、通过分区优化测试运行时间。测量覆盖率应改用 cargo-llvm-cov,检查测试代码风格用 clippy-advanced,审计未使用测试依赖用 cargo-machete。

安装与基本用法: cargo install cargo-nextest --locked cargo nextest --version cargo nextest run cargo nextest run test_name cargo nextest run -p package_name cargo nextest run -- --ignored

配置:在项目根目录创建 .config/nextest.toml,可设置 retries、test-threads、fail-fast、success-output、failure-output、slow-timeout,以及 profile.ci 等环境专用配置和 JUnit XML 输出路径。

过滤:使用表达式语言,如 cargo nextest run -E 'test(auth)'、-E 'package(my_crate)'、-E 'test(auth) and not test(slow)'。支持 test、binary、package、kind、platform 及 not/and/or 运算符。

并行与输出:用 --test-threads 控制并行度(0 表示使用全部核心);支持人类可读、JSON、json-pretty 输出,并可生成 JUnit XML 供 CI 使用。

不稳定测试:通过 retries 自动重试,并可用 overrides 按过滤器设置不同重试次数。

限制:nextest 不支持 doctests,需单独运行 cargo test --doc;CI 中可先运行 cargo nextest run 再运行 cargo test --doc。

适用场景:本地开发、CI 流水线、诊断不稳定或缓慢测试、资源分组管理(test-groups)。