Outline
Write test code and measure coverage for TDD with shell script.I’ll use shunit2 for test and shcov for coverage.
Test
Install
wget https://shunit2.googlecode.com/files/shunit2-2.1.6.tgz tar zxvf shunit2-2.1.6.tgz
Write test
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
Coverage
Install
wget https://shcov.googlecode.com/files/shcov-5.tar.gz tar zxvf shcov-5.tar.gz
Measure coverage
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"
Measure
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