shellを書こう 02 shunit2を使おう

28
shUnit2を使おう kanazawa.rb meetup#46 2016年06月18日 Shellを書こう 02

Upload: keisuke-oohata

Post on 19-Feb-2017

183 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Shellを書こう 02 shUnit2を使おう

shUnit2を使おうkanazawa.rb meetup#46

2016年06月18日

Shellを書こう 02

Page 2: Shellを書こう 02 shUnit2を使おう

@cotton_desu

Page 3: Shellを書こう 02 shUnit2を使おう

シェル書いてますか?

Page 4: Shellを書こう 02 shUnit2を使おう

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

Page 5: Shellを書こう 02 shUnit2を使おう

実は

Page 6: Shellを書こう 02 shUnit2を使おう

shUnit2で出来るんです

Page 7: Shellを書こう 02 shUnit2を使おう

shUnit2とは

Page 8: Shellを書こう 02 shUnit2を使おう

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

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

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

shUnit2とは

Page 9: Shellを書こう 02 shUnit2を使おう

インストールは簡単

Page 10: Shellを書こう 02 shUnit2を使おう

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

Page 11: Shellを書こう 02 shUnit2を使おう

ダウンロード&展開のみ

Page 12: Shellを書こう 02 shUnit2を使おう

使い方

Page 13: Shellを書こう 02 shUnit2を使おう

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

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

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

使い方(ルール)

Page 14: Shellを書こう 02 shUnit2を使おう

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

Page 15: Shellを書こう 02 shUnit2を使おう

例えば、assertEquals

Page 16: Shellを書こう 02 shUnit2を使おう

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

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

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

assertEquals

Page 17: Shellを書こう 02 shUnit2を使おう

作成例

Page 18: Shellを書こう 02 shUnit2を使おう

#! /bin/sh

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

{ assertEquals 1 1 }

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

equality_test.sh

Page 19: Shellを書こう 02 shUnit2を使おう

実行例

Page 20: Shellを書こう 02 shUnit2を使おう

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

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

OK ←テストの成功

Page 21: Shellを書こう 02 shUnit2を使おう

失敗例

Page 22: Shellを書こう 02 shUnit2を使おう

#! /bin/sh

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

{ assertEquals 1 2 }

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

equalityng_test.sh

Page 23: Shellを書こう 02 shUnit2を使おう

実行例

Page 24: Shellを書こう 02 shUnit2を使おう

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

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

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

Page 25: Shellを書こう 02 shUnit2を使おう

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

Page 26: Shellを書こう 02 shUnit2を使おう

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

Page 27: Shellを書こう 02 shUnit2を使おう

Demo

Page 28: Shellを書こう 02 shUnit2を使おう

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

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

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

総括