bats(1)¶
名称¶
bats - Bash Automated Testing System
説明¶
Bats は TAP 互換の Bash テストフレームワークです。UNIX プログラムが期待した通りに動作するかどうか検証するための手段を提供します。
Bats テストファイルは特殊な構文でテストケースを定義した Bash スクリプトになります。内部的には、各テストケースは説明が書かれたただの関数です。
テストケースは標準的なシェルコマンドからなります。Bats はテストケースの実行時に Bash の errexit (set -e) オプションを利用します。テストケースの全てのコマンドがステータスコード 0 (成功) で終了した場合、テスト通過となります。このとき、一行ごとに結果が返ります。
Bats のテストの書き方について詳しくは bats(7) を参照してください。
テストの実行¶
テストを実行するには、テストファイルのパスを指定して bats インタプリタを呼び出してください。ファイルのテストケースは順次別々に実行されます。全てのテストケースが通過したら、bats はステータスコード 0 で終了します。失敗したテストがある場合、bats はステータスコード 1 で終了します。
bats インタプリタを呼び出すときは、引数として複数のテストファイルを指定したり、複数の .bats ファイルが含まれたディレクトリのパスを指定することができます。Bats は個々のテストファイルを独立して実行してから結果を集計します。どれかひとつでもテストに失敗したときは、bats はステータスコード 1 で終了します。
オプション¶
- -c, --count
テストを実行するかわりにテストケースの数をカウント
- -h, --help
ヘルプメッセージを表示
- -p, --pretty
眉目良い形式で結果を表示 (ターミナルの場合のデフォルト)
- -t, --tap
TAP 形式で結果を表示
- -v, --version
バージョン番号を表示
出力¶
ターミナルから Bats を起動した場合、テストが実行されるたびに、通過したときはチェックマークが、失敗したときは "X" がテストの名前と共に表示されます:
$ bats addition.bats
✓ addition using bc
✓ addition using dc
2 tests, 0 failures
Bats がターミナルに接続されていない場合 (継続的インテグレーションシステムから Bats が実行された場合やファイルに出力がリダイレクトされた場合など)、人が読むことができマシンからパースできる TAP 形式で結果が表示されます。--tap オプションを使うことでターミナルから実行したときも強制的に TAP で出力できます:
$ bats --tap addition.bats
1..2
ok 1 addition using bc
ok 2 addition using dc
終了ステータス¶
bats インタプリタはテストケースが全て通過したときは 0 で、ひとつ以上のテストケースが失敗した場合は 1 で終了します。