@@ -244,6 +244,10 @@ Command-line options
244244
245245 Show local variables in tracebacks.
246246
247+ .. cmdoption :: --durations N
248+
249+ Show the N slowest test cases (N=0 for all).
250+
247251.. versionadded :: 3.2
248252 The command-line options ``-b ``, ``-c `` and ``-f `` were added.
249253
@@ -253,10 +257,12 @@ Command-line options
253257.. versionadded :: 3.7
254258 The command-line option ``-k ``.
255259
260+ .. versionadded :: 3.12
261+ The command-line option ``--durations ``.
262+
256263The command line can also be used for test discovery, for running all of the
257264tests in a project or just a subset.
258265
259-
260266.. _unittest-test-discovery :
261267
262268Test Discovery
@@ -2009,6 +2015,13 @@ Loading and running tests
20092015 A list containing :class: `TestCase ` instances that were marked as expected
20102016 failures, but succeeded.
20112017
2018+ .. attribute :: collectedDurations
2019+
2020+ A list containing 2-tuples of :class: `TestCase ` instances and floats
2021+ representing the elapsed time of each test which was run.
2022+
2023+ .. versionadded :: 3.12
2024+
20122025 .. attribute :: shouldStop
20132026
20142027 Set to ``True `` when the execution of tests should stop by :meth: `stop `.
@@ -2160,14 +2173,27 @@ Loading and running tests
21602173
21612174 .. versionadded :: 3.4
21622175
2176+ .. method :: addDuration(test, elapsed)
2177+
2178+ Called when the test case finishes. *elapsed * is the time represented in
2179+ seconds, and it includes the execution of cleanup functions.
2180+
2181+ .. versionadded :: 3.12
21632182
2164- .. class :: TextTestResult(stream, descriptions, verbosity)
2183+ .. class :: TextTestResult(stream, descriptions, verbosity, *, durations=None )
21652184
21662185 A concrete implementation of :class: `TestResult ` used by the
2167- :class: `TextTestRunner `.
2186+ :class: `TextTestRunner `. Subclasses should accept ``**kwargs `` to ensure
2187+ compatibility as the interface changes.
21682188
21692189 .. versionadded :: 3.2
21702190
2191+ .. versionadded :: 3.12
2192+ Added *durations * keyword argument.
2193+
2194+ .. versionchanged :: 3.12
2195+ Subclasses should accept ``**kwargs `` to ensure compatibility as the
2196+ interface changes.
21712197
21722198.. data :: defaultTestLoader
21732199
@@ -2177,7 +2203,8 @@ Loading and running tests
21772203
21782204
21792205.. class :: TextTestRunner(stream=None, descriptions=True, verbosity=1, failfast=False, \
2180- buffer=False, resultclass=None, warnings=None, *, tb_locals=False)
2206+ buffer=False, resultclass=None, warnings=None, *, \
2207+ tb_locals=False, durations=None)
21812208
21822209 A basic test runner implementation that outputs results to a stream. If *stream *
21832210 is ``None ``, the default, :data: `sys.stderr ` is used as the output stream. This class
@@ -2195,14 +2222,17 @@ Loading and running tests
21952222 *warnings * to ``None ``.
21962223
21972224 .. versionchanged :: 3.2
2198- Added the `` warnings `` argument .
2225+ Added the * warnings * parameter .
21992226
22002227 .. versionchanged :: 3.2
22012228 The default stream is set to :data: `sys.stderr ` at instantiation time rather
22022229 than import time.
22032230
22042231 .. versionchanged :: 3.5
2205- Added the tb_locals parameter.
2232+ Added the *tb_locals * parameter.
2233+
2234+ .. versionchanged :: 3.12
2235+ Added the *durations * parameter.
22062236
22072237 .. method :: _makeResult()
22082238
0 commit comments