Loading docs/topics/testing.txt +43 −0 Original line number Diff line number Diff line Loading @@ -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 ============= Loading Loading
docs/topics/testing.txt +43 −0 Original line number Diff line number Diff line Loading @@ -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 ============= Loading