When exceptions are raised during the running of a test suite, the resulting
traceback objects are saved so that failure details can be formatted and printed
at the end of the test run.
Apart from simplicity, the benefit of this is that a
future version of the GUI TestRunner will be able to allow post-mortem
inspection of local and global variable values, which are stored with the
traceback.
A possible side-effect is that when running test suites with very high
failure rates, the memory usage of all these saved traceback objects could
become a problem. Of course, if so many tests are failing, this memory overhead
is the least of your problems.