Refs #12991 -- Added extra docs for the unittest2 changes made in r14139.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14140 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2010-10-11 13:18:00 +00:00
parent 121d2e3678
commit 5e319f5194
2 changed files with 61 additions and 0 deletions

View File

@ -108,6 +108,12 @@ their deprecation, as per the :ref:`Django deprecation policy
:attr:`~django.test.client.Response.templates` attribute should be
used instead.
* The features of the :class:`django.test.simple.DjangoTestRunner`
(including fail-fast and Ctrl-C test termination) can now be provided
by the unittest-native :class:`TextTestRunner`. The
:class:`~django.test.simple.DjangoTestRunner` will be removed in
favor of using the unittest-native class.
* 2.0
* ``django.views.defaults.shortcut()``. This function has been moved
to ``django.contrib.contenttypes.views.shortcut()`` as part of the

View File

@ -1431,6 +1431,61 @@ manually, assign the empty list to ``mail.outbox``::
# Empty the test outbox
mail.outbox = []
Skipping tests
--------------
.. versionadded:: 1.3
The unittest library provides the ``@skipIf`` and ``@skipUnless``
decorators to allow you to skip tests if you know ahead of time that
those tests are going to fail under certain conditions.
For example, if your test requires a particular optional library in
order to succeed, you could decorate the test case with ``@skipIf``.
Then, the test runner will report that the test wasn't executed and
why, instead of failing the test or omitting the test altogether.
To supplement these test skipping behaviors, Django provides two
additional skip decorators. Instead of testing a generic boolean,
these decorators check the capabilities of the database, and skip the
test if the database doesn't support a specific named feature.
The decorators use a string identifier to describe database features.
This string corresponds to attributes of the database connection
features class. See :class:`~django.db.backends.BaseDatabaseFeatures`
class for a full list of database features that can be used as a basis
for skipping tests.
skipIfDBFeature
~~~~~~~~~~~~~~~
Skip the decorated test if the named database feature is supported.
For example, the following test will not be executed if the database
supports transactions (e.g., it would *not* run under PostgreSQL, but
it would under MySQL with MyISAM tables)::
class MyTests(TestCase):
@skipIfDBFeature('supports_transactions')
def test_transaction_behavior(self):
# ... conditional test code
skipUnlessDBFeature
~~~~~~~~~~~~~~~~~~~
Skip the decorated test if the named database feature is *not*
supported.
For example, the following test will not be executed if the database
supports transactions (e.g., it would run under PostgreSQL, but *not*
under MySQL with MyISAM tables)::
class MyTests(TestCase):
@skipUnlessDBFeature('supports_transactions')
def test_transaction_behavior(self):
# ... conditional test code
Using different testing frameworks
==================================