组件:
Testcose:定义测试用例
Testsuite:测试套件,用于管理测试列(实例化)
Testrunner:运行加载用例
Testloader:加在测试用例
fixture: 相当于勾子,用户测试用例执行前后进行执行
1.作用:用来测试写的模块,类,对象对不对
2:使用:
1:导报,
2:创建测试用例
例子:
class Bdtest(unittest.TestCase): 使用unittest测试用例的时候 写用例的时候 需要加上 unittest.TestCase @parameterized.expand(baidu()) def test_1(self,x,y,exp): ret=add_a(x,y) self.assertEqual(exp,ret,msg='不相同')
3:加载用例
4:实例化一个测试套件,均加在用例
5:加载用例的三种方法:
addtest(模块名.类名(方法名)) 测试一个方法
# addtest(unittest.makesuite(模块名.类名))#测试一个类
# suite=unittest.Testloader().discover("路径","文件名") 测试一整个文件或多个文件
6:执行测试用例
借助TextTestRunner对象运行 # runner对象调用urn方法参数化测试:
首先需要安转 pip install parameterized
使用时候需要导 from parameterized import parameterized
例子:
def add_a(a,b):
return a+b
# 获取要测的数据
def baidu():
with open("./data.json","r",encoding="utf-8")as f:
a=f.read()
lista=json.loads(a)
list=[]
# for i in lista:
# b=i['x'],i['y'],i['exp']
# list.append(b)
d=[(i['x'],i['y'],i['exp']) for i in json.loads(a)]
print(d)
return d
class Bdtest(unittest.TestCase):
@parameterized.expand(baidu()) 这需要用parameterized 可以将要测试的参数都放在这里面调用
def test_1(self,x,y,exp):
ret=add_a(x,y)
self.assertEqual(exp,ret,msg='不相同')
Fixture判断
了解fixture是一个概述,对一个测试用例环境的初始化和销毁是一个fixture,以开发的角都去理解,fixture就像是flask框架中的钩子,特定的方法,在测试用例执行前后进行
fixture三种级别:
方法级别:
类级别:
模块级别:
开始基本都是 def setup 结尾基本都是0def tear
方法级别(判断一个方法):前置处理 def setup(self)
后置处理 def teardown(self)
类级别(判断一个类,或者多个类):开始:@classmethod def setUpclass(cls)
结尾:@classmethod def tearDownclass(cls)



