unittest中的 @classmethod使用方法
在Python的unittest模块中,@classmethod通常与两个特殊的方法一起使用:setUpClass和tearDownClass。这些方法用于在测试用例执行之前和之后设置和清理资源,它们对于所有测试方法来说只会分别执行一次。
setUpClass(cls): 这个方法在执行类中的第一个测试前调用一次。它通常用于执行一些只需在测试开始时执行一次的设置工作,比如打开数据库连接、创建测试数据等。
tearDownClass(cls): 这个方法在类中的所有测试运行完毕后调用一次。它用于清理setUpClass中设置的资源,如关闭数据库连接、删除临时文件等。
这两个方法都必须被装饰为类方法,即使用@classmethod装饰器,并且接收一个参数cls,代表当前测试类。
``import unittest
class MyTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
# 在所有测试开始前执行一次的设置代码
print("setUpClass: Executing before all tests")
@classmethod
def tearDownClass(cls):
# 在所有测试结束后执行一次的清理代码
print("tearDownClass: Executing after all tests")
def test_method1(self):
# 第一个测试方法
print("Running test_method1")
def test_method2(self):
# 第二个测试方法
print("Running test_method2")
if name == 'main':
unittest.main()``
墨者看遍天下皆是丹青,测试看尽万物皆是bug