用途:本技能提供使用 Bats(Bash Automated Testing System)为 shell 脚本编写单元测试的完整指导,适用于脚本开发、测试驱动开发、CI/CD 自动化测试、边界与错误条件验证,以及跨 shell 环境(bash、sh、dash)的行为验证。
主要能力:Bats 是符合 TAP(Test Anything Protocol)的 shell 测试框架,提供自然的测试语法、TAP 输出、setup/teardown 支持、断言辅助和并行执行。资料覆盖的内容包括:安装方式(brew install bats-core、从 GitHub 克隆执行 ./install.sh /usr/local、npm install --global bats,以及用 bats --version 验证);用 @test 编写测试并配合 run 获取 $status、$output、$lines;退出码、输出、文件断言;setup/teardown 以及 setup_file/teardown_file 全局钩子;函数 mock、命令 stub、变量覆盖;静态与动态 fixture;错误条件、缺失依赖(skip)和 shell 兼容性测试;并行执行;test_helper.sh 共享工具;GitHub Actions 与 Makefile 的 CI 集成。
使用方式:按建议的目录结构(bin/、tests/、tests/fixtures/、tests/helpers/)组织测试文件,用 bats tests/*.bats 运行,可加 --tap、--verbose、--parallel 4 参数。测试文件首行使用 #!/usr/bin/env bats 并 load test_helper。文中给出的安装命令和示例均保持原样。
限制:资料未提供该技能的收费、价格、平台支持范围或测试覆盖率等具体信息;部分最佳实践与资源链接仅为参考,实际项目应按自身环境验证。