A simple unit-testing framework for bash.
BST is distributed with bashfun (bash function library). Installation guide here.
Bst will run tests in the following .test file format:
#!/bin/bash
setUp() {
# Create the test fixture: source files, define vars, etc.
# This function will be run before each test* function is called, below.
# A setUp function must be defined but if you don't need any setUp
# actions just write this:
echo -n
}
tearDown() {
# Do any tidying up required after the test.
# This function will be run after each test* function is called, below.
# A tearDown function must always be defined, but if you don't need any
# tearDown actions just write this:
echo -n
}
# name all your test functions "test[Something]"
testMyFunctionReturnsTen(){
assertEqualNumbers `myFunction` 10
}
# another example test* function
testAnotherFunctionReturnsHello() {
assertEqualStrings `anotherFunction` 'hello'
}
#
# etc
#
These should be self-explanatory:
You can find the assertion fns in /opt/bashfun/assertions.sh
To run tests, pass the path to a directory containing .test files to bst, eg:
$ bst path/to/myapp/specifications
You can also pass as many other arguments you like and access them in test functions as numbered args $2, $3, etc. Try echoing $@ in a test function to see what's going on.
testFoo(){
echo $@
}
If you don't see any "Fail" messages, all the tests passed.