Shellを書こう 02 shUnit2を使おう

Preview:

Citation preview

shUnit2を使おうkanazawa.rb meetup#46

2016年06月18日

Shellを書こう 02

@cotton_desu

シェル書いてますか?

shellでもテスト できるの知ってましたか?

実は

shUnit2で出来るんです

shUnit2とは

シェルスクリプトのテストフレームワーク

• 対応OS (FreeBSD,Linux,Mac OS X,Solaris..etc)

• 対応シェル (sh,bash,dash,ksh,pdksh,zsh)

shUnit2とは

インストールは簡単

https://code.google.com/archive/p/shunit2/downloads

ダウンロード&展開のみ

使い方

• testで始まるファンクションがテスト対象

• テストスクリプトの最後にshunit2を 読み込む

• テストスクリプトを実行

使い方(ルール)

Assert機能を使って期待している値と動作結果を確認する

例えば、assertEquals

2つの引数の値を比較する

• 2つの値が一致した場合、成功(OK)

• 2つの値が不一致の場合、失敗(FAILED)

assertEquals

作成例

#! /bin/sh

testEquality() ←testで始まるファンクション名

{ assertEquals 1 1 }

# load shunit2 . ../src/shunit2 ←最後にshunit2を読み込む

equality_test.sh

実行例

sh equality_test.sh testEquality ←実行したファンクション名

Ran 1 test. ←実行ファンクション数

OK ←テストの成功

失敗例

#! /bin/sh

testEqualityNg() ←testで始まるファンクション名

{ assertEquals 1 2 }

# load shunit2 . ../src/shunit2 ←最後にshunit2を読み込む

equalityng_test.sh

実行例

sh equalityng_test.sh testEqualityNg ASSERT:expected:<1> but was:<2> ←失敗理由

Ran 1 test. ←実行ファンクション数

FAILED (failures=1) ←テストの失敗

shUnit2ではassertEquals以外のassertもあります

https://sites.google.com/site/paclearner/shunit2-documentation

Demo

• インストールも使い方も簡単

• テストコードの書き方も簡単

• shellによるテストライフを始めましょう

総括

Recommended