我有套接字服务器设置运行一些unittests,它将输出其日志到控制台。如何禁用Python中的socketserver输出?
有没有办法可以禁用它?
这里的大致我运行代码:
class TestServer(SocketServer.TCPServer):
allow_reuse_address = True
class ScraperExampleTest(unittest.TestCase):
def setUp(self):
# Due to requests not supporting the 'file' scheme, we are forced to run
# our own server. See: https://github.com/kennethreitz/requests/issues/847
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = TestServer(('', PORT), Handler)
httpd_thread = threading.Thread(target=httpd.serve_forever)
httpd_thread.setDaemon(True)
httpd_thread.start()
我不喜欢这个,但我想它通过添加'sys.stdout的= open('/ dev/null','w')'setUp方法。根本没有改变输出。 – mlissner 2013-05-11 21:58:30
难道是发送到控制台的输出有效来自写入stderr而不是stdout?尝试重定向stderr。 – mjv 2013-05-12 03:21:23
重定向stderr的作品,但它是如此之多以至于我无法赞同它。如果测试失败,我将无法获得输出。这比成功过程中的输出更糟糕。 – mlissner 2013-05-17 19:09:54