我有客户端和服务器脚本来提供/读取一些数据。
当我尝试使用 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.
作为总结,我无法在单元测试类中创建第二个套接字。什么可能导致此错误?
查看 socket docs 的 close(),第二个测试启动时套接字可能尚未关闭:
close() 释放与连接关联的资源,但不释放 必须立即关闭连接。如果您想关闭 及时连接,在close()之前调用shutdown()。
导入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()