unittest_前置setUp与后置tearDown

unittest_前置setUp与后置tearDown

setUp:用例执行前的准备操作(比如数据库的连接,浏览器驱动实例化等)

setDown():用例执行后的清理操作(比如清除数据,关闭数据库连接,关闭浏览器驱动等)

unittest前置后置分为以下三种:

1、setUpModule、tearDownModule:模块级,全局,所有用例执行前/后只执行一次(类外)

2、setUpClass、tearDownClass:类级,一个测试用例类执行前/后只执行一次(类中),需要注意的是:必须加上@classmethod才会生效

3、setUp、tearDown:方法级,每个测试用例前/后都执行一次(类中类外都执行)

那么以下就来直接写代码,来看下执行情况:

import unittest
#整个模块开始前执行
def setUpModule():
    print('模块级别(setUpModule)开始')
#整个模块结束后执行
def tearDownModule():
    print('模块级别(tearDownModule)结束')

class Testcase(unittest.TestCase):
    #setUpClass和tearDownClass为类方法,需要通过@classmethod进行装饰,另外方法的参数为cls,cls与self没有本质区别,都表示类对象本身
    #每个测试用例类开始前执行
    @classmethod
    def setUpClass(cls):
        print('类级别(setUpClass)开始')
    #每个测试用例类
    # 结束后执行
    @classmethod
    def tearDownClass(cls):
        print('类级别(tearDownClass)结束')
    #每条测试用例前执行
    def setUp(self) -> None:
        print('测试用例开始')
    #每条测试用例后执行
    def tearDown(self) -> None:
        print('测试用例结束')
    #编写测试用例
    def test_01(self):
        print('测试用例01执行')
    def test_02(self):
        print('测试用例02执行')

if __name__ == '__main__':
    unittest.main()

执行输出如下:

 

可以看到调用顺序:模块级(setUpModule、tearDownModule)=>类级(setUpClass、tearDownClass)=>方法级(setUp、tearDown)

 

posted @ 2022-08-16 10:58  测试-13  阅读(478)  评论(0)    收藏  举报