views:

50

answers:

1

Is there a way to make unittest.TextTestRunner completely quiet, meaning that it never prints to output on its own? Even at verbosity=0 it prints results when done.

The thing is that i want to process the TestResult object returned by the runner before anything is printed.

+1  A: 

TextTestRunner has a stream=sys.stderr in its constructor:

def __init__(self, stream=sys.stderr, descriptions=1, verbosity=1)

Change it to a null stream.

result = unittest.TextTestRunner(stream = open(os.devnull, 'w')).run(alltests)
if len(result.failures) or len(result.errors):
    print "Sorry."
Tal Weiss