summaryrefslogtreecommitdiff
path: root/tests/test_runner
diff options
context:
space:
mode:
authorAhmad A. Hussein <ahmadahussein0@gmail.com>2020-07-22 17:37:52 +0200
committerCarlton Gibson <carlton@noumenal.es>2020-08-13 17:17:15 +0200
commit61a0ba43cfd4ff66f51a9d73dcd8ed6f6a6d9915 (patch)
tree5c5033cee4d537df66a6e1a51d4ea1a285551a65 /tests/test_runner
parent21768a99f47ee73a2f93405151550ef7c3d9c8a2 (diff)
downloaddjango-61a0ba43cfd4ff66f51a9d73dcd8ed6f6a6d9915.tar.gz
Refs #31811 -- Added optional timing outputs to the test runner.
Diffstat (limited to 'tests/test_runner')
-rw-r--r--tests/test_runner/test_discover_runner.py22
-rw-r--r--tests/test_runner/tests.py7
2 files changed, 27 insertions, 2 deletions
diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py
index 8caacd2620..183e283d08 100644
--- a/tests/test_runner/test_discover_runner.py
+++ b/tests/test_runner/test_discover_runner.py
@@ -8,7 +8,9 @@ from unittest import (
from django.db import connections
from django.test import SimpleTestCase
from django.test.runner import DiscoverRunner
-from django.test.utils import captured_stderr, captured_stdout
+from django.test.utils import (
+ NullTimeKeeper, TimeKeeper, captured_stderr, captured_stdout,
+)
from django.utils.version import PY37
@@ -324,6 +326,24 @@ class DiscoverRunnerTests(SimpleTestCase):
DiscoverRunner(enable_faulthandler=False)
mocked_enable.assert_not_called()
+ def test_timings_not_captured(self):
+ runner = DiscoverRunner(timing=False)
+ with captured_stderr() as stderr:
+ with runner.time_keeper.timed('test'):
+ pass
+ runner.time_keeper.print_results()
+ self.assertTrue(isinstance(runner.time_keeper, NullTimeKeeper))
+ self.assertNotIn('test', stderr.getvalue())
+
+ def test_timings_captured(self):
+ runner = DiscoverRunner(timing=True)
+ with captured_stderr() as stderr:
+ with runner.time_keeper.timed('test'):
+ pass
+ runner.time_keeper.print_results()
+ self.assertTrue(isinstance(runner.time_keeper, TimeKeeper))
+ self.assertIn('test', stderr.getvalue())
+
class DiscoverRunnerGetDatabasesTests(SimpleTestCase):
runner = DiscoverRunner(verbosity=2)
diff --git a/tests/test_runner/tests.py b/tests/test_runner/tests.py
index 85e4e75720..e12ea3b11a 100644
--- a/tests/test_runner/tests.py
+++ b/tests/test_runner/tests.py
@@ -14,7 +14,7 @@ from django.core.management.base import SystemCheckError
from django.test import TransactionTestCase, skipUnlessDBFeature, testcases
from django.test.runner import DiscoverRunner
from django.test.testcases import connections_support_transactions
-from django.test.utils import dependency_ordered
+from django.test.utils import captured_stderr, dependency_ordered
from .models import B, Person, Through
@@ -148,6 +148,11 @@ class ManageCommandTests(unittest.TestCase):
with self.assertRaises(AttributeError):
call_command('test', 'sites', testrunner='test_runner.NonexistentRunner')
+ def test_time_recorded(self):
+ with captured_stderr() as stderr:
+ call_command('test', '--timing', 'sites', testrunner='test_runner.tests.MockTestRunner')
+ self.assertIn('Total run took', stderr.getvalue())
+
class CustomTestRunnerOptionsSettingsTests(AdminScriptTestCase):
"""