Run Python unittests automatically. Re-run tests when source has changed. Try to make intelligent decisions about which tests to run.
In project directory with unittests:
$ autocheck discover -v
Accepts the same options as python -m unittest.
$ pip install autocheck
Optionally, for Growl support:
$ pip install gntp
Install watchdog kernel support according to
https://pythonhosted.org/watchdog/installation.html.
Tell django to use our test runner, in settings:
TEST_RUNNER = 'autocheck.contrib.django.TestSuiteRunner'
Or on the command line:
./manage.py test --testrunner=autocheck.contrib.django.TestSuiteRunner
Run tests automatically whenever source has changed:
$ autocheck
autocheck tries to figure out if it runs in a django project
(./manage.py exists, contains DJANGO_SETTINGS_MODULE, django
is importable). Additionally, if a file test_settings.py exists,
DJANGO_SETTINGS_MODULE=test_settings is added to the environment.
Behind the scenes, there are two test runners for django, selected
during import of autocheck.contrib.django.TestSuiteRunner:
autocheck.contrib.django.discoveryrunner.TestSuiteRunnerfor recent versions of django (>=1.6)autocheck.contrib.django.testsuiterunner.TestSuiteRunnerfor older versions (<1.6)
The latter is not compatible with the old ./manage.py test command,
instead it tries to reproduce the interface of python -m unittest.
The other one is a thin wrapper around django's DiscoverRunner,
adding a few command line switches for our custom TestRunner.
Dump the test database with:
$ autocheck --stats
Or for flat output with:
$ autocheck --stats-flat
Run in project directory:
$ python setup.py test
Run tests using our own test runner:
$ pip install -e . $ pip install -r requirements/test.txt $ python -m autocheck discover -v --once -s ./vows -t .
Tested against Python-2.6, 2.7, 3.3, 3.4, PyPy 2 and 3.
- make
autocheck.autorunnerfile pattern configurable - config file(s)
- documentation for tags and tag expressions
- documentation for autocheck command line flags
--helpfor autocheck command
This is free and unencumbered software released into the public domain.
see UNLICENSE