Modify test runners to be a class-based structure
|Reported by:||russellm||Owned by:||nobody|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
When test runners were originally introduced, the run_tests() method was fairly simple, so users who needed custom test execution behavior didn't have a major hurdle to overcome.
However, over time, the test runner has become more complex, in order to support more complex features. "Just write a custom test runner" isn't as easy as it once was.
This is especially problematic for someone that wants a relatively simple change - e.g., enabling DEBUG during testing, or using a different test discovery method, or using a different TestRunner class to execute the suite.
The test runner should be a class with overridable functions, rather than a single function.