SuperAPI AI 工具集

bats-testing-patterns

测试与质量

查看项目

更新于 10-16 03:14

技能介绍

用途:为 Shell 脚本编写单元测试,支持测试驱动开发、CI/CD 自动化测试、边界与错误条件验证、跨 shell 环境行为校验,以及构建可维护的测试套件和复杂场景 fixture。

主要能力:Bats 是符合 TAP(Test Anything Protocol)的 Shell 测试框架,提供自然测试语法、TAP 输出、setup/teardown 支持、断言辅助与并行执行。可断言退出码($status)、输出($output、$lines)、文件存在性、内容、权限与大小;支持 setup/teardown、setup_file/teardown_file 全局钩子;支持函数 Mock、命令桩(stub 目录加入 PATH)、变量桩;支持 fixture 文件与动态生成;可测试错误条件、依赖缺失时 skip、bash/sh/dash 兼容性及并行操作。

使用方式:安装可用 brew install bats-core;Ubuntu/Debian 可 git clone https://github.com/bats-core/bats-core.git 后执行 ./install.sh /usr/local;也可 npm install --global bats,并用 bats --version 验证。测试文件以 #!/usr/bin/env bats 开头,用 @test "名称" { ... } 定义用例,run 执行命令后检查 $status 与 $output。可用 load test_helper 加载共享辅助。运行示例:bats tests/.bats,可加 --tap、--verbose、--parallel 4。Makefile 与 GitHub Actions 中可调用 bats tests/.bats 集成 CI。

适用场景:Shell 脚本单元测试、CI/CD 流水线测试、TDD、错误与边界测试、多 shell 方言兼容性验证、复杂测试 fixture 构建。

限制:资料未提供具体版本要求、性能数据、收费信息或平台支持范围;部分示例使用 macOS 的 stat -f 语法,跨平台时需注意差异。