用途:为 shell 脚本编写全面的单元测试,适用于脚本测试、脚本的测试驱动开发(TDD)、CI/CD 自动化测试、边界与错误条件验证、跨 shell 环境行为验证,以及构建可维护的测试套件和复杂测试夹具。
主要能力:提供 Bats 测试模式与示例,包括测试错误条件(用 run 捕获 $status 与 $output,断言非零退出码和错误信息)、处理依赖(用 command -v 检查工具,缺失时 skip)、测试 shell 兼容性(分别用 bash、sh、dash 运行脚本)、并行执行(后台任务加 wait)、测试辅助函数(如 assert_file_exists、assert_file_equals、setup_test_dir、cleanup_test_dir),以及 CI/CD 集成(GitHub Actions 中 npm install --global bats 后运行 bats tests/*.bats,Makefile 中提供 test、test-verbose、test-tap、test-parallel 目标)。
使用方式:测试文件以 #!/usr/bin/env bats 开头,用 @test 定义用例,setup/teardown 管理环境,run 执行被测命令并检查 $status、$output。更详细的模式文档位于 references/details.md。
最佳实践:每个测试只验证一件事,使用描述性测试名,teardown 清理临时文件,覆盖成功与失败路径,mock 外部依赖,用夹具处理复杂数据,在 CI/CD 中运行,跨 shell 方言测试,保持测试快速并尽量并行,记录复杂测试设置。
限制:资料未提供具体安装步骤之外的版本要求、收费或价格信息,也未说明支持的全部平台范围。