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.