Upload
keisuke-oohata
View
184
Download
0
Embed Size (px)
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によるテストライフを始めましょう
総括