Index: chrome/test/pyautolib/pyauto.py |
diff --git a/chrome/test/pyautolib/pyauto.py b/chrome/test/pyautolib/pyauto.py |
index ee090ee544fad42187da8ffb740bb529f793ec90..18fcf101de8252de9bfe89e9c9e216c7eb398c1e 100644 |
--- a/chrome/test/pyautolib/pyauto.py |
+++ b/chrome/test/pyautolib/pyauto.py |
@@ -1348,6 +1348,60 @@ class PyUITestSuite(pyautolib.PyUITestSuiteBase, unittest.TestSuite): |
pyautolib.PyUITestSuiteBase.__del__(self) |
+class _GTestTextTestResult(unittest._TextTestResult): |
+ """A test result class that can print formatted text results to a stream. |
+ |
+ Results printed in conformance with gtest output format, like: |
+ [ RUN ] autofill.AutoFillTest.testAutofillInvalid: "test desc." |
+ [ OK ] autofill.AutoFillTest.testAutofillInvalid |
+ [ RUN ] autofill.AutoFillTest.testFillProfile: "test desc." |
+ [ OK ] autofill.AutoFillTest.testFillProfile |
+ [ RUN ] autofill.AutoFillTest.testFillProfileCrazyCharacters: "Test." |
+ [ OK ] autofill.AutoFillTest.testFillProfileCrazyCharacters |
+ """ |
+ def __init__(self, stream, descriptions, verbosity): |
+ unittest._TextTestResult.__init__(self, stream, descriptions, verbosity) |
+ |
+ def _GetTestURI(self, test): |
+ if sys.version_info[:2] <= (2, 4): |
+ return '%s.%s' % (unittest._strclass(test.__class__), |
+ test._TestCase__testMethodName) |
+ return '%s.%s' % (unittest._strclass(test.__class__), test._testMethodName) |
+ |
+ def getDescription(self, test): |
+ return '%s: "%s"' % (self._GetTestURI(test), test.shortDescription()) |
+ |
+ def startTest(self, test): |
+ unittest.TestResult.startTest(self, test) |
+ self.stream.writeln('[ RUN ] %s' % self.getDescription(test)) |
+ |
+ def addSuccess(self, test): |
+ unittest.TestResult.addSuccess(self, test) |
+ self.stream.writeln('[ OK ] %s' % self._GetTestURI(test)) |
+ |
+ def addError(self, test, err): |
+ unittest.TestResult.addError(self, test, err) |
+ self.stream.writeln('[ ERROR ] %s' % self._GetTestURI(test)) |
+ |
+ def addFailure(self, test, err): |
+ unittest.TestResult.addFailure(self, test, err) |
+ self.stream.writeln('[ FAILED ] %s' % self._GetTestURI(test)) |
+ |
+ |
+class PyAutoTextTestRuner(unittest.TextTestRunner): |
+ """Test Runner for PyAuto tests that displays results in textual format. |
+ |
+ Results are displayed in conformance with gtest output. |
+ """ |
+ def __init__(self, verbosity=1): |
+ unittest.TextTestRunner.__init__(self, |
+ stream=sys.stderr, |
+ verbosity=verbosity) |
+ |
+ def _makeResult(self): |
+ return _GTestTextTestResult(self.stream, self.descriptions, self.verbosity) |
+ |
+ |
# Implementation inspired from unittest.main() |
class Main(object): |
"""Main program for running PyAuto tests.""" |
@@ -1575,7 +1629,7 @@ class Main(object): |
verbosity = 1 |
if self._options.verbose: |
verbosity = 2 |
- result = unittest.TextTestRunner(verbosity=verbosity).run(pyauto_suite) |
+ result = PyAutoTextTestRuner(verbosity=verbosity).run(pyauto_suite) |
del loaded_tests # Need to destroy test cases before the suite |
del pyauto_suite |
sys.exit(not result.wasSuccessful()) |