unittest(8)- 学习ddt
import unittest from ddt import ddt, data, unpack """ 1.正常情况下,测试函数(即测试用例)中不可以传参,如果要使用参数,只能通过超继承_init_函数, 在初始化函数中传入参数,然后在测试函数中调用参数 2.如果不使用超继承,还可以使用ddt,这样就可以给用例传参了 3.当用例的参数不超过5个时,可以使用unpack,超过5个后,不建议使用ddt,而应该直接通过索引取参数 """ # ddt----------------------------- test_data = [1, 3] # @ddt # 装饰测试类 # class TestMath(unittest.TestCase): # # @data(*test_data) # 装饰测试用例,传入测试数据,这里会把列表的子元素分别取出来 # def test_print_data(self, item): # 使用ddt后,可以给用例传参,有多少个子元素,就会执行几次用例,一个子元素对应一个用例 # print("item: ", item) # ---------------------------------------------------- # 参数前加*,脱外套 # t = [3, 6] # print(*t) # ----------------------------------------------------- # 给数据加*后,会脱掉一层外套,数据被拆分, # 有几个数据就会执行几次测试用例。和遍历是一样的效果 # test_data = [[1, 4], [2, 5]] # # # @ddt # 装饰测试类 # class TestMath(unittest.TestCase): # # @data(*test_data) # 装饰测试用例,传入数据,给数据脱外套 # def test_print_data(self, item): # print("item: ", item) # ------------------------------------------------------------- # 给用例传2个参数 # test_data = [[1, 4], [2, 6]] # # @ddt # class TestMath(unittest.TestCase): # @data(*test_data) # @unpack # 把拿到的数据,用逗号进行拆分,比如经过*test_data得到子元素[1, 4], [2, 6], 经过unpack后,会把[1,4]变成1和4,所以在用例中,需要两个参数来接收 # def test_print_data(self, a, b): # print("a: ", a) # print("b: ", b) # --------------------------------------------------- # 脱掉一层外套后的子元素个数必须相等,不然会报错,要么就设置默认值参数 # test_data = [[1, 2], [3, 4, 5]] # # @ddt # class TestMath(unittest.TestCase): # @data(*test_data) # @unpack # def test_print_data(self, a, b, c=None): # print("a: ", a) # print("b: ", b) # print("c: ", c) # ----------------------------------------------- # 子元素超过5个后不建议使用unpack # test_data = [[1, 3], [1, 2, 3, 4, 5, 6, 7]] # # # @ddt # class TestMath(unittest.TestCase): # @data(*test_data) # def test_print_data(self, item): # print("item: ", item) # -------------------------------------- # 对字典进行unpack时,测试用例中传入的参数名要和字典的键名一样 # test_data = [{"num": 1, "name": "huihui"}, {"num": 2, "name": "haha"}] # # # @ddt # class TestMath(unittest.TestCase): # @data(*test_data) # @unpack # def test_print_data(self, num, name): # print("num: ", num) # print("name: ", name)
unittest(8)- 学习ddt的更多相关文章
- selenium + python自动化测试unittest框架学习(二)
1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...
- selenium + python自动化测试unittest框架学习(一)selenium原理及应用
unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...
- python - unittest 单元测试学习
单元测试 单元测试是用来对一个模块.一个函数或者一个类进行正确性检验的测试工作 比如对Python中的abs 的测试 输入正数: 比如 1, 2, 3, 返回值不变 输入负数: 比如 -1, -2, ...
- unittest使用数据驱动ddt
简介 ddt(data driven test)数据驱动测试:由外部数据集合来驱动测试用例,适用于测试方法不变,但需要大量变化的数据进行测试的情况,目的就是为了数据和测试步骤的分离 由于unittes ...
- 12.unittest的学习
unittest学习后的总结,记录各个主要内容
- 【python】以souhu邮箱为例学习DDT数据驱动测试
前言 DDT(Data-Driven Tests)是针对 unittest 单元测试框架设计的扩展库.允许使用不同的测试数据来运行一个测试用例,并将其展示为多个测试用例.通俗理解为相同的测试脚本使用不 ...
- selenium + python自动化测试unittest框架学习(七)随机生成姓名
在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机 ...
- selenium + python自动化测试unittest框架学习(五)webdriver的二次封装
因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<se ...
- 单元测试模块unittest使用学习
工作原理: unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 一个TestCase的实例就是一个测试用例.什么是 ...
随机推荐
- 吴裕雄--天生自然TensorFlow2教程:创建Tensor
import numpy as np import tensorflow as tf tf.convert_to_tensor(np.ones([2, 3])) tf.convert_to_tenso ...
- Django_前介
Django 1.软件框架 一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来. 一个软件框架是由其中各个软件模块组成的,每一个模 ...
- 题解-------P4053 [JSOI2007]建筑抢修
传送门 贪心+左偏树 贪心思路:先修快炸的楼 所以我们可以按照$T2$从大到小做一遍排序,然后从$1\cdots n$一个一个去修,如果这栋楼不能修(也就是当前时间已经超过$T2_{i}$),那我们就 ...
- liblinear中的信赖域算法
求方程 \(H s = -g\), H是hessian矩阵, g 为梯度, 残量 \(r = -g -Hs\). s的初值为0,理论上,共轭梯度每步迭代使得\(\|s\|\) 单调增加,共轭梯度的迭代 ...
- Python - 文件和目录
# -*- coding: utf-8 -*- import os print(os.name) # 获取操作系统类型 # print(os.uname()) # 获取操作系统的详细信息,Win不支持 ...
- tensorflow(七)
一.模型托管工具 TensorFlow Serving TensorFlow Serving支持生产级的服务部署,允许用户快速搭建从模型训练到服务发布的工作流水线. 工作流水线主要由三部分构成 (1) ...
- springmvc 实现文件上传
1.添加jar包 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io&l ...
- 模型层字段-多表查询-神奇的双下划线查询-F,Q查询
Django ORM中常用的字段和参数 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. In ...
- 二十二、NFS服务深入讲解
一.查看nfs服务: [root@nfsserve ~]# ps -ef|grep -E "rpc|nfs"rpc 1565 1 0 17:29 ? ...
- 吴裕雄--天生自然C语言开发:内存管理
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { ]; char *d ...