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
Output
