diff options
author | Ahmad A. Hussein <ahmadahussein0@gmail.com> | 2020-07-22 17:37:52 +0200 |
---|---|---|
committer | Carlton Gibson <carlton@noumenal.es> | 2020-08-13 17:17:15 +0200 |
commit | 61a0ba43cfd4ff66f51a9d73dcd8ed6f6a6d9915 (patch) | |
tree | 5c5033cee4d537df66a6e1a51d4ea1a285551a65 /tests/test_runner | |
parent | 21768a99f47ee73a2f93405151550ef7c3d9c8a2 (diff) | |
download | django-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.py | 22 | ||||
-rw-r--r-- | tests/test_runner/tests.py | 7 |
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): """ |