1
0
mirror of https://github.com/django/django.git synced 2025-06-05 03:29:12 +00:00

[1.4.x] Fixed #4501 - Documented how to use coverage.py with Django tests.

Thanks krzysiumed for the draft patch.

Backport of 7ef2781ca0ce48872e21dce2f322c9e4106d1cfd from master.
This commit is contained in:
Tim Graham 2012-10-10 20:03:27 -04:00
parent c06b724a00
commit 1be0515fe9

View File

@ -560,6 +560,49 @@ failed and erroneous tests. If all the tests pass, the return code is 0. This
feature is useful if you're using the test-runner script in a shell script and
need to test for success or failure at that level.
Speeding up the tests
---------------------
In recent versions of Django, the default password hasher is rather slow by
design. If during your tests you are authenticating many users, you may want
to use a custom settings file and set the :setting:`PASSWORD_HASHERS` setting
to a faster hashing algorithm::
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.MD5PasswordHasher',
)
Don't forget to also include in :setting:`PASSWORD_HASHERS` any hashing
algorithm used in fixtures, if any.
Integration with coverage.py
----------------------------
Code coverage describes how much source code has been tested. It shows which
parts of your code are being exercised by tests and which are not. It's an
important part of testing applications, so it's strongly recommended to check
the coverage of your tests.
Django can be easily integrated with `coverage.py`_, a tool for measuring code
coverage of Python programs. First, `install coverage.py`_. Next, run the
following from your project folder containing ``manage.py``::
coverage run --source='.' manage.py test myapp
This runs your tests and collects coverage data of the executed files in your
project. You can see a report of this data by typing following command::
coverage report
Note that some Django code was executed while running tests, but it is not
listed here because of the ``source`` flag passed to the previous command.
For more options like annotated HTML listings detailing missed lines, see the
`coverage.py`_ docs.
.. _coverage.py: http://nedbatchelder.com/code/coverage/
.. _install coverage.py: http://pypi.python.org/pypi/coverage
Testing tools
=============