diff options
| author | David Smith <smithdc@gmail.com> | 2023-06-14 19:22:48 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-08-31 07:14:58 +0200 |
| commit | 74b5074174d1749ee44df2f7ed418010a7a4ac70 (patch) | |
| tree | a533ff3b0e3db36baa991081d012d4554acbef28 /django | |
| parent | 27b399d23531541d091886f683991e321c8fa314 (diff) | |
Fixed #34210 -- Added unittest's durations option to the test runner.
Diffstat (limited to 'django')
| -rw-r--r-- | django/test/runner.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/django/test/runner.py b/django/test/runner.py index fc14efee11..3a30674b61 100644 --- a/django/test/runner.py +++ b/django/test/runner.py @@ -29,6 +29,7 @@ from django.test.utils import setup_test_environment from django.test.utils import teardown_databases as _teardown_databases from django.test.utils import teardown_test_environment from django.utils.datastructures import OrderedSet +from django.utils.version import PY312 try: import ipdb as pdb @@ -285,6 +286,10 @@ failure and get a correct traceback. super().stopTest(test) self.events.append(("stopTest", self.test_index)) + def addDuration(self, test, elapsed): + super().addDuration(test, elapsed) + self.events.append(("addDuration", self.test_index, elapsed)) + def addError(self, test, err): self.check_picklable(test, err) self.events.append(("addError", self.test_index, err)) @@ -655,6 +660,7 @@ class DiscoverRunner: timing=False, shuffle=False, logger=None, + durations=None, **kwargs, ): self.pattern = pattern @@ -692,6 +698,7 @@ class DiscoverRunner: self.shuffle = shuffle self._shuffler = None self.logger = logger + self.durations = durations @classmethod def add_arguments(cls, parser): @@ -791,6 +798,15 @@ class DiscoverRunner: "unittest -k option." ), ) + if PY312: + parser.add_argument( + "--durations", + dest="durations", + type=int, + default=None, + metavar="N", + help="Show the N slowest test cases (N=0 for all).", + ) @property def shuffle_seed(self): @@ -953,12 +969,15 @@ class DiscoverRunner: return PDBDebugResult def get_test_runner_kwargs(self): - return { + kwargs = { "failfast": self.failfast, "resultclass": self.get_resultclass(), "verbosity": self.verbosity, "buffer": self.buffer, } + if PY312: + kwargs["durations"] = self.durations + return kwargs def run_checks(self, databases): # Checks are run after database creation since some checks require |
