Django command for quickly re-running tests when ever a file changes.
Provides the ‘autotest’ command which enhances django’s built in test feature with the auto reload feature used in django’s runserver command.
Install via pip or your python egg layer of choice:
pip install django-autotest-command
Then add to your django settings.py
INSTALLED_APPS = ( … ‘autotest’, )
No other apps are required except for django core.
Run like a usual django test:
./manage.py autotest [app_name[.tests.TestCaseName[.test_name]]]
This testing tool will launch the test suite, setup the database and then run the test suite as usual. When finished it will wait for a file to change in your project before re-running the tests.
When re-running it will by default only test the previous failures on the next run through. If all tests passed, then it will run all tests.
After failures are detected, they are all listed by number. You can select one or more tests to target by typing the numbers seperated by commas and hitting enter. Targeting allows you to focus on one bug at a time.
When finished with your test targeting press enter at the prompt to reset.
Coverage reports can be generated by install the coverage module >=4.0.0 and will pick up on any .coveragerc file in your project. A new report will only run when all items are being tested. Partial coverage reports are not yet supported.
autotest.base contains useful base classes which can help you write tests for django. The functionality includes getObj for getting objects of a certain type. assertGet/Post for making requests with status checking and forum error checking. As well as client and user management functions.
See this test command in action here: https://youtu.be/6rL0C2CBwyI
Please come help this project by using the code, writing tests and leting the project authors know you appreciate their code: