1. bats(1)
  2. bats(1)

NAME

bats - Bash Automated Testing System

SYNOPSIS

bats [-c] [-p | -t] test [test ...]

DESCRIPTION

Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected.

Bats is most useful when testing software written in Bash, but you can use it to test any UNIX program.

FILES

To run your tests, invoke the bats interpreter with a path to a test file. The file's test cases are run sequentially and in isolation. If all the test cases pass, bats exits with a 0 status code. If there are any failures, bats exits with a 1 status code.

You can invoke the bats interpreter with multiple test file arguments, or with a path to a directory containing multiple .bats files. Bats will run each test file individually and aggregate the results. If any test case fails, bats exits with a 1 status code.

OPTIONS

-c, --count
Count the number of test cases without running any tests
-h, --help
Display this help message
-p, --pretty
Show results in pretty format (default for terminals)
-t, --tap
Show results in TAP format
-v, --version
Display the version number

EXAMPLES

When you run Bats from a terminal, you'll see output as each test is performed, with a check-mark next to the test's name if it passes or an "X" if it fails.

$ bats addition.bats
 ✓ addition using bc
 ✓ addition using dc

2 tests, 0 failures

If Bats is not connected to a terminal—in other words, if you run it from a continuous integration system or redirect its output to a file—the results are displayed in human-readable, machine-parsable TAP format. You can force TAP output from a terminal by invoking Bats with the --tap option.

$ bats --tap addition.bats
1..2
ok 1 addition using bc
ok 2 addition using dc

(c) 2013 Sam Stephenson.

Bats is released under an MIT-style license

SEE ALSO

bats(7)

  1. November 2013
  2. bats(1)