Agent Skills
返回列表
💻

Cargo-Nextest 测试并行重试

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/parallelize-and-retry-rust-test-runs-before-flaky-or-slow-suites-stall-ci-with-cargo-nextest

技能介绍

CI 中 Rust 测试的三个典型问题

在持续集成里,Rust 测试套件常常因为调度方式而变慢:cargo test 在同一时刻只串行地跑 #[test],但现代多核 CI 机器却空着。第二个问题是 flaky 测试——一次网络抖动、一次临时目录权限变化,都会让本来通过的用例失败,直接卡住合并流水线。第三个问题是输出不够稳定:人类可读的日志很难被自动分析,无法快速区分「真的坏了」和「偶发失败」。

技能的工作方式

该技能围绕 cargo-nextest 展开,核心能力包括:

  • 并行调度:把测试用例拆解并并发运行,充分利用多核 CI 机器,减少排队时间。
  • 失败重试:对失败用例进行可配置的重试,削弱 flaky 测试对流水线的影响。
  • 失败隔离:单个测试崩溃时仍能继续运行后续用例,避免一个用例拖垮整轮运行。
  • 机器可读输出:输出更适合脚本解析,便于 CI 做自动化判断与归档。

典型步骤是:先检查环境是否具备 Rust、Cargo 和 cargo-nextest,再按项目需要的并发度与重试次数运行测试,最后依据结构化输出决定流水线是否继续。

适用边界与注意点

  • 适合 Rust/Cargo 项目,尤其是 CI 上存在慢测试或偶发失败的场景。
  • 重试只能缓解偶发问题,不能替代对测试根因的修复。
  • 自动化素材来自上游技能仓库,敏感工作流中运行前应先审查上游项目与参数设置。

使用场景

  • CI 跑 Rust 测试太慢,需要利用多核机器缩短等待
  • CI 经常因偶发失败卡住,需要自动重试后再判定
  • 测试输出难以被脚本解析,需要机器可读结果来控制流水线
  • 某个用例崩溃会中断整轮测试,需要隔离失败并继续运行其他用例

适合人员

  • 维护 Rust 仓库的后端工程师,希望 CI 在多核机器上跑完测试套件
  • 负责合并流水线的 DevOps,需要减少 flaky 测试造成的阻塞
  • 开源项目维护者,想在不重写测试的前提下稳定 CI 运行
  • 质量工程师,需要稳定的机器可读结果来归档和判断是否放行