diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -982,6 +982,19 @@ def run(cmd, wd, options, replacements, iolock = threading.Lock() +class TestResult(unittest._TextTestResult): + """Holds results when executing via unittest.""" + # Don't worry too much about accessing the non-public _TextTestResult. + # It is relatively common in Python testing tools. + def __init__(self, *args, **kwargs): + super(TestResult, self).__init__(*args, **kwargs) + +class TextTestRunner(unittest.TextTestRunner): + """Custom unittest test runner that uses appropriate settings.""" + + def _makeResult(self): + return TestResult(self.stream, self.descriptions, self.verbosity) + class TestRunner(object): """Holds context for executing tests. @@ -1191,7 +1204,7 @@ class TestRunner(object): verbosity = 1 if self.options.verbose: verbosity = 2 - runner = unittest.TextTestRunner(verbosity=verbosity) + runner = TextTestRunner(verbosity=verbosity) runner.run(suite) else: self._executetests(tests)