FolioscopeFolioscope2015-11-05Bash用ユニットテストフレームワーク作りましたshBash用テストフレームワークに、Batsやshunit2がありますが、イケてないなーと思ってたら、気づいたら自分で作ってました。github.comテストの結果はモダンなテストフレームワークのように、カラフルに表示します。FAIL時は、FAILしたテストの結果を表示します。上で動作することを確認しています。~/bin/bashtubです。~/binはパスが通ってるとします。打つことで実行できます。テストはxUnit系のようにassertionベースで書きます。最初のテストまずはシンプルな例を示します。含まれる単語数を調べます。テストを実行するには、bashtubにテストファイルを指定します。するとテストの結果が表示されます。ヘルパーメソッドを用意しています。指定された言語が非対応の場合、stderrにエラーを表示して終了コード1を返します。subjectメソッドの使用例を以下に示します。このテストでは、標準操作時のstdoutと、例外処理時のstderrと終了コードをチェックします。等しいならパスします。とマッチするならパスします。指定されたコマンドの終了コードが、それぞれ0、0以外ならパスします。subjectメソッドで終了コードを0と等しいかチェックするのと等価です。したがって以下のテストケースは同じ結果となります。