[shell] シェルスクリプトをJenkins上で自動テスト
今週はシェルスクリプトで痛い目見たので、Jenkins上でシェルスクリプトの自動テストを行える環境を調べた。
使用したシェルスクリプトのユニットテストフレームワークはshunit2。
shunit2 - shUnit2 - xUnit based unit testing for Unix shell scripts - Google Project Hosting
シェルスクリプトのユニットテストフレームワーク "shUnit2" を使ってみた - ablog
まずは、シェルスクリプトと、そのテストスクリプト(正常ケース・エラーケース)作成。
sample.sh
#!/bin/bash sample(){ CODE=$1 MESSAGE=$2 echo "$CODE-$MESSAGE" }
sample_test.sh
#!/bin/bash # 関数読み込み . ./sample.sh test() { CODE=S001 MESSAGE=hage EXPECTED="S001-hage" ACTUAL=`sample ${CODE} ${MESSAGE}` assertEquals ${EXPECTED} ${ACTUAL} } # load shunit2 . ./shunit2
sample_errot_test.sh
#!/bin/bash # 関数読み込み . ./sample.sh test() { CODE=S001 MESSAGE=hage EXPECTED="S999-error" ACTUAL=`sample ${CODE} ${MESSAGE}` assertEquals ${EXPECTED} ${ACTUAL} } # loadshunit2 . ./shunit2
これらを使ったJenkinsジョブを作り、まずはビルドの手順に成功テストのスクリプトを指定。
結果。
次は失敗テストを指定。
結果。
特に問題なく使えそうですね。
ディレクトリ構成の規約とか無いから、そこだけしっかりしとけば十分使えそう。
先週やっておけば…っ!