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.list
The 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
count
which denotes the amount of tests. - Then come the tests. Each test is a sequence of fields:
- Blob field
shell
which contains the shell command to test, - Integer field
returncode
which contains the expected exit code of the shell command, - Blob field
stdout
which contains the bytes of the expected standard output, - Blob field
stderr
which contains the bytes of the expected standard error output.
- Blob field
See test.list.bi for an example.