diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2023-04-02 22:12:51 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-02 22:12:51 (GMT) |
commit | 6883007a86bdf0d7cf4560b949fd5e577dab1013 (patch) | |
tree | b5585b8135e1136d9b567dda62e887a27033b392 /Lib/unittest/case.py | |
parent | a0305c5fdfdef7a362d0262c54399c4a6013d1ea (diff) | |
download | cpython-6883007a86bdf0d7cf4560b949fd5e577dab1013.zip cpython-6883007a86bdf0d7cf4560b949fd5e577dab1013.tar.gz cpython-6883007a86bdf0d7cf4560b949fd5e577dab1013.tar.bz2 |
bpo-4080: unittest durations (#12271)
Diffstat (limited to 'Lib/unittest/case.py')
-rw-r--r-- | Lib/unittest/case.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index 5167c5f..018f22e 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -9,6 +9,7 @@ import warnings import collections import contextlib import traceback +import time import types from . import result @@ -572,6 +573,15 @@ class TestCase(object): else: addUnexpectedSuccess(self) + def _addDuration(self, result, elapsed): + try: + addDuration = result.addDuration + except AttributeError: + warnings.warn("TestResult has no addDuration method", + RuntimeWarning) + else: + addDuration(self, elapsed) + def _callSetUp(self): self.setUp() @@ -612,6 +622,7 @@ class TestCase(object): getattr(testMethod, "__unittest_expecting_failure__", False) ) outcome = _Outcome(result) + start_time = time.perf_counter() try: self._outcome = outcome @@ -625,6 +636,7 @@ class TestCase(object): with outcome.testPartExecutor(self): self._callTearDown() self.doCleanups() + self._addDuration(result, (time.perf_counter() - start_time)) if outcome.success: if expecting_failure: |