Python,unittest:如何让TestRunner完全安静?

7 投票
1 回答
1507 浏览
提问于 2025-04-16 00:40

有没有办法让 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."

撰写回答