Python,unittest:如何让TestRunner完全安静?
有没有办法让 unittest.TextTestRunner 完全安静,也就是说它自己不输出任何内容?即使设置了 verbosity=0
,它在完成时还是会打印结果。
我想在任何内容被打印之前,先处理一下运行器返回的 TestResult 对象。
1 个回答
8
TextTestRunner 在它的构造函数里有一个 stream=sys.stderr
的设置:
def __init__(self, stream=sys.stderr, descriptions=1, verbosity=1)
把它改成一个空的流。
result = unittest.TextTestRunner(stream = open(os.devnull, 'w')).run(alltests)
if len(result.failures) or len(result.errors):
print "Sorry."