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()``

posted @ 2024-01-30 17:42  sriver_dl  Views(45)  Comments(0Edit  收藏  举报