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.