栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

unittest+参数化测试+fixture

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unittest+参数化测试+fixture

unittest:

组件:

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)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号