Running the Tests¶
After making any code change in Gorilla, tests need to be evaluated to ensure that the library still behaves as expected.
Note
Some of the commands below are wrapped into make
targets for
convenience, see the file Makefile
.
unittest¶
The tests are written using Python’s built-in unittest
module. They are
available in the tests
directory and can be fired through the
tests/run.py
file:
$ python tests/run.py
It is possible to run specific tests by passing a space-separated list of partial names to match:
$ python tests/run.py ThisTestClass and_that_function
The unittest
’s command line interface is also supported:
$ python -m unittest discover -s tests -v
Finally, each test file is a standalone and can be directly executed.
tox¶
Test environments have been set-up with tox
to allow testing Gorilla against
each supported version of Python:
$ tox
coverage¶
The package coverage
is used to help localize code snippets that could
benefit from having some more testing:
$ coverage run --source gorilla -m unittest discover -s tests
$ coverage report
$ coverage html
In no way should coverage
be a race to the 100% mark since it is not
always meaningful to cover each single line of code. Furthermore, having some
code fully covered isn’t synonym to having quality tests. This is our
responsability, as developers, to write each test properly regardless of the
coverage status.