0

いくつかのデータを提供/読み取るクライアントとサーバーのスクリプトがあります。

PyUnitを使用して単体テストを作成しようとすると、推論できないエラーが発生します。

関連するコードスニペットは次のとおりです。

class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
    #some set up operations

def testRecieve(self):
    s = socket.socket()   
    s.connect((FEED_SERVER_HOST, FEED_SERVER_PORT))
    sock = socket.socket()    
    #some recieve operations        
    s.close()

 # When i write this code snippet below, i get error: [Errno 98] Address already in use
error. I tried closing 's' socket in tearDown function but still same error raising.

    def testAnotherRecieve(self):
        sock = socket.socket() # Results ERRNO 98.

要約すると、unittestクラスに2番目のソケットを作成できません。このエラーの原因は何ですか?

4

1 に答える 1

1

close()のソケット ドキュメントを見ると、2 番目のテストが開始されるまでにソケットが閉じられていない可能性があります。

close() は、接続に関連付けられたリソースを解放しますが、接続をすぐに閉じるとは限りません。タイムリーに接続を閉じたい場合は、close() の前に shutdown() を呼び出します。

于 2012-08-28T13:14:52.810 に答える