1,unittests介绍和使用
? ?1.1 作用
? ? ? ? 用于单元测试(功能函数,类),用例管理,用例的加载,用例的执行,测试报告的生成
? ?1.2 操作
? ? ? ? 1)TestCase:定义测试用例
? ? ? ? 2)TestSuite:测试套件,用于管理测试用例
? ? ? ? 3)TestRuner:运行测试用例
? ? ? ? 4)TestLoader:加载测试用例
? ? ? ? 5)Fixture:相当于钩子,用户测试用例执行前后进行执行
? 1.3运行用例
1)导包
import unittest
2)定义测试类,测试类必须继承unittest.TestCode:测试用例就是方法,方法名必须以test开头
3)实例化测试套件:suite = unittest.TestSuite()
4)测试套件加载测试用例:
suite.addTest(模块名.类名("方法名"))
suite.addTest(unittest.makeSuite(模块名.类名))
suite = unittest.TestLoader().discover("路径","文件名+通配符")
5)运行测试套件
runner = unittest.TextTestRunner()
runner.run(suite)
? ? 1.4 Fixture : setUp(),tearDown()
? ? ? ? ? #Fixture级别:
? ? ? ? ? ? ? ? - 方法级别:在执行测试类中的每一条测试用例之前,都会执行一遍setUp()方法,执行完每一条测试用例,都会执行一遍tearDown()方法
? ? ? ? ? ? ? ? - 类级别:在整个测试类里面所有的测试用例执行之前,执行一次setUpClass(Cls),所有用例执行完毕之后,统一执行一次tearDownClass(cls)
@classmethod
def setUpClass(cls):
pass
@classmethod
def tearDownClass(cls):
pass
? ? ? 1.5 Fixture
? ? ? ? ? ? ? ? Fixture是一个概述,对一个测试用例环境的初始化和销毁就是一个Fixture,以开发的视角理解,Fixture就像是Flask框架中的钩子,特定的方法,在测试用例执行前后进行执行
? ? ? ? ? ? ? ? Fixture存在控制级别:不同的级别决定的作用范围和时机(方法级别,类级别,模块级别)
? ? ? ? ? ? ? ? 1.5.1 不同方法界别的特点:
????????????????
# - 初始化(前置处理): def setUp(self) --> 首先自动执行
# - 销毁(后置处理): def tearDown(self) --> 最后自动执行
#运行于测试方法的始末,即:运行一次测试方法就会运行一次setUp和tearDown
import unittest
class my_testp1(unittest.TestCase):
def setUp(self):
print("setUp 执行")
def setUp(self):
print("setUp 执行")
def setUp(self):
print("setUp 执行")
def setUp(self):
print("setUp 执行")
|