Răsfoiți Sursa

Fixed #27008 -- Added --debug-mode option to DiscoverRunner.

Chris Jerdonek 8 ani în urmă
părinte
comite
5890b1613c

+ 4 - 0
django/test/runner.py

@@ -393,6 +393,10 @@ class DiscoverRunner(object):
             '-r', '--reverse', action='store_true', dest='reverse', default=False,
             help='Reverses test cases order.',
         )
+        parser.add_argument(
+            '--debug-mode', action='store_true', dest='debug_mode', default=False,
+            help='Sets settings.DEBUG to True.',
+        )
         parser.add_argument(
             '-d', '--debug-sql', action='store_true', dest='debug_sql', default=False,
             help='Prints logged SQL queries on failure.',

+ 7 - 0
docs/ref/django-admin.txt

@@ -1254,6 +1254,13 @@ Sorts test cases in the opposite execution order. This may help in debugging
 the side effects of tests that aren't properly isolated. :ref:`Grouping by test
 class <order-of-tests>` is preserved when using this option.
 
+.. django-admin-option:: --debug-mode
+
+.. versionadded:: 1.11
+
+Sets the :setting:`DEBUG` setting to ``True`` prior to running tests. This may
+help troubleshoot test failures.
+
 .. django-admin-option:: --debug-sql, -d
 
 Enables :ref:`SQL logging <django-db-logger>` for failing tests. If

+ 2 - 3
docs/releases/1.11.txt

@@ -269,9 +269,8 @@ Tests
 * Added :meth:`.DiscoverRunner.get_test_runner_kwargs` to allow customizing the
   keyword arguments passed to the test runner.
 
-* Added the ``debug_mode`` keyword argument to
-  :class:`~django.test.runner.DiscoverRunner` to make it easier to customize
-  the :setting:`DEBUG` setting when running tests.
+* Added the :option:`test --debug-mode` option to help troubleshoot test
+  test failures by setting the :setting:`DEBUG` setting to ``True``.
 
 URLs
 ~~~~

+ 10 - 0
tests/test_runner/test_discover_runner.py

@@ -1,4 +1,5 @@
 import os
+from argparse import ArgumentParser
 from contextlib import contextmanager
 from unittest import TestSuite, TextTestRunner, defaultTestLoader
 
@@ -24,6 +25,15 @@ class DiscoverRunnerTest(TestCase):
         runner = DiscoverRunner()
         self.assertFalse(runner.debug_mode)
 
+    def test_add_arguments_debug_mode(self):
+        parser = ArgumentParser()
+        DiscoverRunner.add_arguments(parser)
+
+        ns = parser.parse_args([])
+        self.assertFalse(ns.debug_mode)
+        ns = parser.parse_args(["--debug-mode"])
+        self.assertTrue(ns.debug_mode)
+
     def test_dotted_test_module(self):
         count = DiscoverRunner().build_suite(
             ["test_discovery_sample.tests_sample"],