bats Plugin
Bash Automated Testing System. Write unit and integration tests for shell scripts with readable syntax, TAP output, and first-class CI support.
Installation
npm install -g bats
# or
brew install bats-core
# Debian/Ubuntu: apt install bats
Basic Usage
# Run a single test file
bats test/example.bats
# Run all tests in a directory
bats test/
# Count tests without running
bats --count test/
Common Patterns
# Filter tests by name pattern
bats --filter "login" test/
# Parallel execution
bats --jobs 4 test/
# TAP output for CI
bats --tap test/
# JUnit XML for reporting
bats --formatter junit test/ > report.xml
Writing Tests
# example.bats
@test "addition works" {
result=$(echo $((2 + 2)))
[ "$result" -eq 4 ]
}
Usage Examples
- "Run all Bash tests in the test/ directory"
- "Filter bats tests matching 'deploy'"
- "Output bats results in TAP format for CI"
SuperCLI
sc bats test run test/example.bats
sc bats _ _ --filter "auth" test/
sc plugins learn bats