概要
シェルスクリプトでもTDDするためにテストコードを書いてカバレッジ測定をする。テストにはshunit2を使用し、カバレッジ測定にはshcovを利用する。
shunit2 shcov は利用が簡単のためおすすめだが、メンテナンスが十分されるかどうかが心配。
テスト
インストール
wget https://shunit2.googlecode.com/files/shunit2-2.1.6.tgz tar zxvf shunit2-2.1.6.tgz
テストを書いてみる
vim firstTest.sh --- #!/bin/bash ### firstTest.sh ### function testWeCanWriteTests () { assertEquals "it works" "it works" } ## Call and Run all Tests . "./shunit2-2.1.6/src/shunit2" --- chmod +x firstTest.sh ./firstTest.sh --- testWeCanWriteTests Ran 1 test. OK
カバレッジ
インストール
wget https://shcov.googlecode.com/files/shcov-5.tar.gz tar zxvf shcov-5.tar.gz
カバレッジを測定してみる
first.sh
#!/bin/bash function Hello () { echo "Hello World!" }
firstTest.sh
#!/bin/bash ## Load target shell . first.sh ### firstTest.sh ### function testWeCanWriteTests () { Hello assertEquals $? 0 } ## Call and Run all Tests . "./shunit2-2.1.6/src/shunit2"
カバレッジ測定
shcov-5/scripts/shcov firstTest.sh --- testWeCanWriteTests Hello World! Ran 1 test. OK --- ls /tmp/shcov shcov-5/scripts/shlcov /tmp/shcov output ls output