Agent Skills
返回列表
💻

Bats 测试模式

开发编程 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/bats-testing-patterns。

技能介绍

问题从哪来

Shell 脚本一旦进入 CI 或多人协作,退出码、标准输出/错误和副作用(改文件、调外部命令)往往只能靠手工跑一遍。回归成本高,边界条件和失败路径也容易被漏测。Bats(Bash Automated Testing System)把「可重复的断言」带进 bash 世界,但如何组织用例、夹具和 CI 仍需要一套可复制的模式。

技能在讲什么

本技能是一份面向 Bats 的单元测试实践指南,重点包括:

  • 确认 shell 方言与目标运行环境,避免「本地能过、流水线挂」
  • 用辅助函数与测试夹具(fixtures)搭结构,而不是把逻辑堆在单个 @test 里
  • 针对 exit code、stdout/stderr 与副作用编写断言
  • 使用 setup / teardown 隔离状态,并在 CI/CD 中稳定执行

更细的模式与示例在 resources/implementation-playbook.md 中展开。

适用边界

适合为 shell 脚本做 TDD 或流水线自动化测试。若项目几乎不用 shell、需要的是跨服务/跨进程的集成测试,或目标只是 lint/格式化,应选用其它工具链,而不是把 Bats 当万能测试框架。

使用场景

  • 维护部署/运维脚本,需要在合并前用 Bats 断言退出码与关键输出
  • 在 CI 流水线里为 `*.sh` 增加回归测试,覆盖正常路径与失败分支
  • 对安装或初始化脚本做 TDD,先写 `@test` 再改实现
  • 换镜像或默认 shell 后,用同一套用例验证脚本在不同环境下的行为

适合人员

  • 负责发布脚本的 DevOps/SRE,希望把 shell 变更纳入可重复的流水线测试
  • 维护内部 CLI 或 bash 工具库的工程师,需要夹具与 setup/teardown 规范用例结构
  • 在开源或团队仓库中引入 Bats 的维护者,要对照 playbook 落地测试模式与边界断言
  • 写 shell 包装第三方命令的集成开发者,需专门测 stderr、非零退出与副作用