mini-bash-tester/test_utils.sh
の使用例です。
sample
|-- README.md ... 本ファイル
|-- testee.sh ... テスト対象プログラム
|-- tester_01.sh ... 最小のテストプログラム例
|-- tester_02.sh ... _equals_num _equals_str のベーシックな使用例
|-- tester_03.sh ... TEST_CASE_NAME の使用例
`-- tester_04.sh ... count_tests の使用例
testee.sh
は名の通り、テストされる側 のプログラムです。
Mini Bash Tester は、testee.sh
のような Bash スクリプトをテストすることができます。
testee.sh
は関数定義のみされているべきです。
tester_XX.sh
は名の通り、テストする側 のプログラムです。
Mini Bash Tester は、test_utils.sh
を source
などで読み込むだけで使用することができます。
現在の Mini Bash Tester で使用可能な関数は以下の通りです。
fail_unless_equals_num
fail_unless_equals_str
Mini bash tester のチュートリアルです。
test_utils.sh
の使い方や、機能を解説します。
sample/
ディレクトリに移動し、tester_01.sh
を実行します。
下記のように 1 tests passed とリザルトが表示されます。
$ cd mini-bash-tester/sample/
$ ./tester_01.sh
>
> Test result: 1 tests passed.
>
tester_01.sh
には、1行コメントアウトされています。
このコメントを外して再度実行しましょう。
$ cat tester_01.sh
#!/bin/bash
source ../test_utils.sh
fail_unless_equals_num 0 0
fail_unless_equals_str "str_a" "str_b"
$ ./tester_01.sh
Test failed: line=5: want=str_b but target=str_a
>
> Test result: 0 tests passed.
>
コメントを外して実行すると次は 0 tests passed になってしまい、 Test failed: line=5: want=str_b but target=str_a が表示されたことがわかります。
このように Mini bash tester は 1つのテストが失敗するとすぐにテストプログラムを終了する仕様です。
tester_01.sh
をさらに変更しテストを実行しましょう。すべてのテストが通るはずです。
- 変更前
fail_unless_equals_str "str_a" "str_b"
- 変更後
fail_unless_equals_str "str_a" "str_a"