Unit Testing¶
“A true professional does not waste the time and money of other people by handing over software that is not reasonably free of obvious bugs; that has not undergone minimal unit testing; that does not meet the specifications and requirements; that is gold-plated with unnecessary features; or that looks like junk.” – Daniel Read
Running tests¶
You can run ChatterBot’s main test suite using Python’s built-in test runner. For example:
python -m unittest discover -s tests -v
Note that the unittest
command also allows you to specify individual test cases to run.
For example, the following command will run all tests in the test-module tests/logic/
python -m unittest discover -s tests/logic/ -v
To run a specific test in a test class you can specify the test method name using the following pattern:
python -m unittest tests.logic.test_best_match.BestMatchTestCase.test_match_with_response
Tests can also be run in “fail fast” mode, in which case they will run until the first test failure is encountered.
python -m unittest discover -f tests
For more information on unittest
functionality, see the unittest documentation.
Django integration tests¶
Tests for Django integration have been included in the tests_django directory and can be run with:
python runtests.py
Django example app tests¶
Tests for the example Django app can be run with the following command from within the examples/django_example directory.
python manage.py test
Benchmark tests¶
You can run a series of benchmark tests that test a variety of different chat bot configurations for performance by running the following command.
python tests/benchmarks.py
Testing documentation builds¶
The HTML documentation for ChatterBot can be compiled using using Sphinx. To build it run the following command from the root directory of the project:
sphinx-build -nW -b dirhtml docs/ html/