5.3.7 TestResult Objects
A TestResult object stores the results of a set of tests. The TestCase and TestSuite classes ensure that results
are properly stored; test authors do not need to worry about recording the outcome of tests.
Testing frameworks built on top of unittest
may want access to the TestResult object generated by running a set of
tests for reporting purposes; a TestResult instance is returned by the TestRunner.run() method for this purpose.
Each instance holds the total number of tests run, and collections of failures and errors
that occurred among those test runs. The collections contain tuples of (testcase,
traceback), where traceback is a string containing a formatted
version of the traceback for the exception.
TestResult instances have the following attributes that will be of
interest when inspecting the results of running a set of tests:
- errors
- A list containing pairs of TestCase instances and the formatted
tracebacks for tests which raised an exception but did not signal a test failure. Changed in version 2.2: Contains formatted tracebacks instead of sys.exc_info() results.
- failures
- A list containing pairs of TestCase instances and the formatted
tracebacks for tests which signalled a failure in the code under test. Changed in version 2.2: Contains formatted tracebacks instead of sys.exc_info() results.
- testsRun
- The number of tests which have been started.
-
- Returns true if all tests run so far have passed, otherwise returns false.
The following methods of the TestResult class are used to maintain
the internal data structures, and may be extended in subclasses to support additional
reporting requirements. This is particularly useful in building tools which support
interactive reporting while tests are being run.
-
- Called when the test case test is about to be run.
-
- Called when the test case test has been executed, regardless of the outcome.
-
- Called when the test case test raises an exception without signalling a test
failure. err is a tuple of the form returned by sys.exc_info():
(type, value, traceback).
-
- Called when the test case test signals a failure. err is a tuple
of the form returned by sys.exc_info():
(type, value,
traceback).
-
- This method is called for a test that does not fail; test is the test case
object.
One additional method is available for TestResult objects:
-
- This method can be called to signal that the set of tests being run should be aborted.
Once this has been called, the TestRunner object return to its
caller without running any additional tests. This is used by the TextTestRunner
class to stop the test framework when the user signals an interrupt from the keyboard.
Interactive tools which provide runners can use this in a similar manner.
|