.. versionadded:: 3.12
Added *durations* keyword argument.
- .. versionchanged:: 3.12
- Subclasses should accept ``**kwargs`` to ensure compatibility as the
- interface changes.
-
.. data:: defaultTestLoader
Instance of the :class:`TestLoader` class intended to be shared. If no
self.assertTrue(runner.stream.stream is f)
def test_durations(self):
- def run(test, expect_durations):
+ def run(test, *, expect_durations=True):
stream = BufferedWriter()
runner = unittest.TextTestRunner(stream=stream, durations=5, verbosity=2)
result = runner.run(test)
def test_1(self):
pass
- run(Foo('test_1'), True)
+ run(Foo('test_1'), expect_durations=True)
# failure
class Foo(unittest.TestCase):
def test_1(self):
self.assertEqual(0, 1)
- run(Foo('test_1'), True)
+ run(Foo('test_1'), expect_durations=True)
# error
class Foo(unittest.TestCase):
def test_1(self):
1 / 0
- run(Foo('test_1'), True)
+ run(Foo('test_1'), expect_durations=True)
# error in setUp and tearDown
def test_1(self):
pass
- run(Foo('test_1'), True)
+ run(Foo('test_1'), expect_durations=True)
# skip (expect no durations)
class Foo(unittest.TestCase):
def test_1(self):
pass
- run(Foo('test_1'), False)
+ run(Foo('test_1'), expect_durations=False)
self.unexpectedSuccesses.append(test)
def addDuration(self, test, elapsed):
- """Called when a test finished to run, regardless of its outcome."""
+ """Called when a test finished to run, regardless of its outcome.
+ *test* is the test case corresponding to the test method.
+ *elapsed* is the time represented in seconds, and it includes the
+ execution of cleanup functions.
+ """
# support for a TextTestRunner using an old TestResult class
if hasattr(self, "collectedDurations"):
self.collectedDurations.append((test, elapsed))