gpt4 book ai didi

Python 单元测试在所有测试后运行函数

转载 作者:太空狗 更新时间:2023-10-29 20:12:27 24 4
gpt4 key购买 nike

我需要通过 ssh 在 python 上测试 smth。我不想为每个测试都建立 ssh 连接,因为它太长了,我写了这个:

class TestCase(unittest.TestCase):
client = None
def setUp(self):
if not hasattr(self.__class__, 'client') or self.__class__.client is None:
self.__class__.client = paramiko.SSHClient()
self.__class__.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.__class__.client.connect(hostname=consts.get_host(), port=consts.get_port(), username=consts.get_user(),
password=consts.get_password())

def test_a(self):
pass

def test_b(self):
pass

def test_c(self):
pass

def disconnect(self):
self.__class__.client.close()

和我的运行者

if __name__ == '__main__':
suite = unittest.TestSuite((
unittest.makeSuite(TestCase),
))
result = unittest.TextTestRunner().run(suite)
TestCase.disconnect()
sys.exit(not result.wasSuccessful())

在这个版本中,我收到错误 TypeError: unbound method disconnect() must be called with TestCase instance as first argument (got nothing instead)。那么在所有测试通过后我如何调用断开连接?谨致问候。

最佳答案

你应该使用 setUpClasstearDownClass相反,如果您想为所有测试保持相同的连接。您还需要将 disconnect 方法设为静态,因此它属于类而不是类的实例。

class TestCase(unittest.TestCase):

def setUpClass(cls):
cls.connection = <your connection setup>

@staticmethod
def disconnect():
... disconnect TestCase.connection

def tearDownClass(cls):
cls.disconnect()

关于Python 单元测试在所有测试后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26884198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com