专栏文章 Unittest 框架之测试固件:test fixture

程序员一凡 · 2021年02月19日 · 18 次阅读

什么是测试固件

简单来说就是做一些测试过程中需要准备的东西
比如创建临时的数据库,打开浏览器或文件和目录等等(不限定列举的这几种形式)
其中 setUp() 和 setDown() 是最常用的方法
还有 setUpClass() 以及 tearDownClass()

setUp() 和 tearDown()
在每一条用例执行前会先执行 setUp()
在每一条用例执行后会执行 setDown()
那么如果有 100 条用例?难道都要执行一次 setup 和 down???继续往下看

# -*- coding: utf-8 -*-
# @Author : 微信公众号:程序员一凡


import unittest

class TestCase(unittest.TestCase):

    def setUp(self) -> None:
        print("开始执行用例")

    def test1(self):
        print("用例1")

    def test2(self):
        print("用例2")

    def tearDown(self) -> None:
        print("用例执行结束")

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

# 运行结果
开始执行用例
用例1
用例执行结束
开始执行用例
用例2
用例执行结束
..

setUpClass() 以及 tearDownClass()

setUpClass() 以及 tearDownClass() 在所有用例前只会执行一次
@classmethod # 类方法需要加上 classmethod 装饰器

# -*- coding: utf-8 -*-
# @Author : 码上开始


import unittest

class TestCase(unittest.TestCase):
    @classmethod # 类方法需要加上classmethod装饰器
    def setUpClass(cls) -> None:
        print("开始执行用例")

    def test1(self):
        print("用例1")

    def test2(self):
        print("用例2")

    @classmethod  # 类方法需要加上classmethod装饰器
    def tearDownClass(cls) -> None:
        print("用例执行结束")
if __name__ == '__main__':
    unittest.main()

# 运行结果
开始执行用例
用例1
用例2
用例执行结束
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册