Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Refs #12991 -- Added extra docs for the unittest2 changes made in r14…

…139.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14140 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 5e319f5194656849f1660c5d6ff2df695ed13c75 1 parent 121d2e3
@freakboy3742 freakboy3742 authored
Showing with 61 additions and 0 deletions.
  1. +6 −0 docs/internals/deprecation.txt
  2. +55 −0 docs/topics/testing.txt
View
6 docs/internals/deprecation.txt
@@ -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
55 docs/topics/testing.txt
@@ -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
==================================
Please sign in to comment.
Something went wrong with that request. Please try again.