Question

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

I want to process the TestResult object returned by the runner before anything is printed.

Was it helpful?

Solution

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."
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top