3

いくつかの単体テストを実行するように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()
4

2 に答える 2

1

Python でコンソール出力を回避する一般的な方法は、リダイレクトすることです。sys.stdout は、[書き込み用に] 開いている任意のテキスト ファイルに置き換えることができます。

import sys
f = open("myLog.txt", "w")
sto = sys.stdout
sys.stdout = f
#...

#... when done with tests

# restablish the orignal console output
sys.stdout = sto
fclose(f)
于 2013-05-11T21:23:11.627 に答える