diff options
author | Alexis Campailla <alexis@janeasystems.com> | 2015-06-09 16:11:28 +0200 |
---|---|---|
committer | Alexis Campailla <alexis@janeasystems.com> | 2015-07-16 20:21:29 -0400 |
commit | c283c9bbb3e541393d945c0177d80a979a86181d (patch) | |
tree | a47154eaf91ad1ea1937dedbd38bceb24d3b32c3 | |
parent | eeaed586bbe8a703256e79e52558dd0ad1328bb1 (diff) | |
download | node-c283c9bbb3e541393d945c0177d80a979a86181d.tar.gz |
test: support writing test output to file
This is a minimal effort to support test output written both to
stdout and file in order to get our buildbots understanding
test output.
Cherry picked from https://github.com/jbergstroem/io.js/commit/31940738e2d256e91c1c694c5219b8f840c629ff
Original commit message follows:
PR-URL: https://github.com/iojs/io.js/pull/934
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Conflicts:
tools/test.py
Conflicts:
tools/test.py
PR-URL: https://github.com/joyent/node/pull/25686
Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
-rwxr-xr-x | tools/test.py | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/tools/test.py b/tools/test.py index 0e5749a36..5d1d27745 100755 --- a/tools/test.py +++ b/tools/test.py @@ -29,6 +29,7 @@ import imp +import logging import optparse import os import platform @@ -45,6 +46,8 @@ from datetime import datetime from Queue import Queue, Empty import utils +logger = logging.getLogger('testrunner') + VERBOSE = False @@ -225,7 +228,7 @@ class DotsProgressIndicator(SimpleProgressIndicator): class TapProgressIndicator(SimpleProgressIndicator): def Starting(self): - print '1..%i' % len(self.cases) + logger.info('1..%i' % len(self.cases)) self._done = 0 def AboutToRun(self, case): @@ -238,16 +241,16 @@ class TapProgressIndicator(SimpleProgressIndicator): status_line = 'not ok %i - %s' % (self._done, command) if FLAKY in output.test.outcomes and self.flaky_tests_mode == "dontcare": status_line = status_line + " # TODO : Fix flaky test" - print status_line + logger.info(status_line) for l in output.output.stderr.splitlines(): - print '#' + l + logger.info('#' + l) for l in output.output.stdout.splitlines(): - print '#' + l + logger.info('#' + l) else: status_line = 'ok %i - %s' % (self._done, command) if FLAKY in output.test.outcomes: status_line = status_line + " # TODO : Fix flaky test" - print status_line + logger.info(status_line) duration = output.test.duration @@ -255,9 +258,9 @@ class TapProgressIndicator(SimpleProgressIndicator): total_seconds = (duration.microseconds + (duration.seconds + duration.days * 24 * 3600) * 10**6) / 10**6 - print ' ---' - print ' duration_ms: %d.%d' % (total_seconds, duration.microseconds / 1000) - print ' ...' + logger.info(' ---') + logger.info(' duration_ms: %d.%d' % (total_seconds, duration.microseconds / 1000)) + logger.info(' ...') def Done(self): pass @@ -1192,6 +1195,8 @@ def BuildOptions(): default='release') result.add_option("-v", "--verbose", help="Verbose output", default=False, action="store_true") + result.add_option('--logfile', dest='logfile', + help='write test output to file. NOTE: this only applies the tap progress indicator') result.add_option("-S", dest="scons_flags", help="Flag to pass through to scons", default=[], action="append") result.add_option("-p", "--progress", @@ -1361,6 +1366,13 @@ def Main(): parser.print_help() return 1 + ch = logging.StreamHandler(sys.stdout) + logger.addHandler(ch) + logger.setLevel('INFO') + if options.logfile: + fh = logging.FileHandler(options.logfile) + logger.addHandler(fh) + workspace = abspath(join(dirname(sys.argv[0]), '..')) suites = GetSuites(join(workspace, 'test')) repositories = [TestRepository(join(workspace, 'test', name)) for name in suites] |