Python的单元测试框架unittest提供了setUp()方法,用于在每个测试方法执行之前执行一次的初始化操作。这个setUp()方法是针对每个测试方法的,而不是针对整个TestSuite的。
如果需要在整个TestSuite执行之前执行一次全局的初始化操作,可以使用unittest提供的setUpClass()方法。setUpClass()方法是一个类方法,使用@classmethod装饰器进行修饰,它在整个TestSuite执行之前只会被调用一次。
下面是一个示例代码:
import unittest
class MyTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
# 在整个TestSuite执行之前执行的初始化操作
print("setUpClass")
def setUp(self):
# 在每个测试方法执行之前执行的初始化操作
print("setUp")
def test_case1(self):
# 测试方法1
print("test_case1")
def test_case2(self):
# 测试方法2
print("test_case2")
def tearDown(self):
# 在每个测试方法执行之后执行的清理操作
print("tearDown")
@classmethod
def tearDownClass(cls):
# 在整个TestSuite执行之后执行的清理操作
print("tearDownClass")
if __name__ == '__main__':
unittest.main()
运行上述代码,输出结果如下:
setUpClass
setUp
test_case1
tearDown
.setUp
test_case2
tearDown
.tearDownClass
可以看到,setUpClass()方法在整个TestSuite执行之前只会被调用一次,而setUp()方法在每个测试方法执行之前都会被调用一次。这样可以实现全局的初始化操作和每个测试方法的初始化操作。
领取专属 10元无门槛券
手把手带您无忧上云