-
Notifications
You must be signed in to change notification settings - Fork 0
peterwwillis/test.sh
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ABOUT If you want to write a bunch of little shell script functions as tests, run them all and see which ones passed or failed, this makes it easy. COMPILING Install 'm4' and 'shellcheck'. Run `make clean all`. INSTALLING Run `make install`, or copy 'src/test.sh' to wherever you would like to install it. USAGE 1. Copy test.sh to your project and make some tests. 2. Write some shell script functions (these are your tests). 3. Add the names of the functions to a global variable called 'ext_tests'. 4. Put the variable and functions in a file ending with ".t" and pass it to `test.sh` (e.g. `test.sh some-file.t`). The functions listed in 'ext_tests' get called, and pass/fail is determined by their return status. The results are reported at the end. FEATURES The variable 'testbasename' is available to the test functions as the file name of the test, minus the extension ".t". The variable 'testtmpdir' is available to the test functions. It is a new temporary directory created right before each test file is loaded, and removed after the file's tests run. If a function or command '_testsh_pre_test' or '_testsh_post_test' exist, they are run before and after each test. Set environment variable TESTSH_LOGGING=1 to redirect each test's output to its own log file. Successful test logs are automatically deleted unless you set 'TESTSH_LOGGING_KEEP_SUCCESS=1'. Set environment variable TESTSH_ENVRC to a shell script to be loaded by test.sh at start time. All variables in said script are exported. If TESTSH_ENVRC doesn't exist, the file .testshrc is loaded from TESTSH_SRCDIR (which defaults to $PWD or `pwd`). You can change the default extension of tests ('.t') by setting environment variable TESTSH_TESTEXT. Set environment variable DEBUG=1 before running test.sh to enable shell tracing. NOTES There is a collection of Makefiles in this project. You don't need to use them, but they show a handy way to call tests in subdirectories of your project. Or you could go minimalist: find . -type f -name *.t -exec ./test.sh {} \;
About
Minimalist shell script testing framework
Resources
Stars
Watchers
Forks
Packages 0
No packages published