diff options
| author | Tim Graham <timograham@gmail.com> | 2012-10-10 20:03:27 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2012-10-10 20:06:52 -0400 |
| commit | 1be0515fe9940a7a727680a775395fe5f0c12b1d (patch) | |
| tree | 2be6c6f4b81b7c7047f03329053c0288c8d626a0 /docs | |
| parent | c06b724a00236b086a5a64510d8bf11978f083f8 (diff) | |
[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.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/topics/testing.txt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/docs/topics/testing.txt b/docs/topics/testing.txt index 53df1f54c5..3e9c048820 100644 --- a/docs/topics/testing.txt +++ b/docs/topics/testing.txt @@ -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 ============= |
