Universal Behavior Testing Tool in Python. The script is completely self-contained and expected to be simply copy-pasted to your project and modified as needed.
- Create a file with a shell command line per line. Let's call it test.list.
- Record the expected behavior of each shell command:
$ ./rere.py record test.listThe above command should create test.list.bi snapshot file with stdout, stderr, and returncode captured as the expected behavior. The file uses bi format, for more infor see Snapshot Schema.
- Replay the command lines checking their behavior against the recorded one:
$ ./rere.py replay test.list- test.list.bi is expected to be committed into the project repo.
The snapshot file uses bi format. Its schema goes as following (the order of fields matters):
- First comes an Integer field countwhich denotes the amount of tests.
- Then come the tests. Each test is a sequence of fields:
- Blob field shellwhich contains the shell command to test,
- Integer field returncodewhich contains the expected exit code of the shell command,
- Blob field stdoutwhich contains the bytes of the expected standard output,
- Blob field stderrwhich contains the bytes of the expected standard error output.
 
- Blob field 
See test.list.bi for an example.