Python 客户端-服务器脚本单元测试错误

问题描述 投票:0回答:2

我有客户端和服务器脚本来提供/读取一些数据。

当我尝试使用 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.

作为总结,我无法在单元测试类中创建第二个套接字。什么可能导致此错误?

python unit-testing sockets python-unittest
2个回答
1
投票

查看 socket docsclose(),第二个测试启动时套接字可能尚未关闭:

close() 释放与连接关联的资源,但不释放 必须立即关闭连接。如果您想关闭 及时连接,在close()之前调用shutdown()。


0
投票

导入Python 类 DesktopApp 测试服务器: deftest_login_using_valid_credentials(自身): 结果=DesktopApp.login(用户名,密码) 断言结果==True('使用有效凭据登录失败') deftest_login_using_invalid_credentials(自身): 结果=DesktopApp.login(用户名无效,密码无效) 断言结果==False('使用有效凭据登录成功')

    deftest_delete_user(self):
        result=DesktopApp.delete("existing_user")
        assert result==True('failed to existing user')
        if_name__="_main_"
        pytest main()
        
© www.soinside.com 2019 - 2024. All rights reserved.