
QUICK THOUGHTS

Design TrialRunner to be subclassable.
Subclasses are different kinds of "Reporters"

TrialRoot is gone, its now TrialResult. This result will implement the 
truely test related apis, and pass them through to the reporter, which
is the instance users can supply. TrialRoot functionality is moving 
onto TrialRunner, which coordinates test runs. There is also a 
ReactorSuite, which does not return from run until the reactor is clean.


This will give us:
- Easy, safe integration into PyUnit runners (logging setup and thread cleanup
  will be done in TrialRoot)
- Safe integration into GUI runners (subunit.IsolatedTestSuite will wrap straight
  around TrialRoot)
- Clean class to put all of the trial command line stuff into, separate from
  basic Trial mechanics.



"Executing a test should have no dependencies on the TestRunner, TestResult or
any containing TestSuites" ~ mpool


GOALS
- test suites should be stock pyunit TestSuites unless good reason otherwise
  (case-by-case "good reason")

  - runner & result should be somewhat tightly joined

- Magic Twisted fu (e.g. reactor spinning) should be part of TestCase.run
  (a subclass of pyunit TestCase)

- Command line can know about TestCase internals



