What is the purpose of the TestResult interface?

If I had to implement this interface, do I need to:

  • Have once instance per Test class counting all of the tests?
  • OR do I need to have one per test?
  • OR do I need to have one per test and one overall summarising everthing i.e. a parent TestResult (Or more akin to a TestSuiteResult) ?