当前位置: 首页 > news >正文

网站开发工具c龙炎电商软件

网站开发工具c,龙炎电商软件,网上企业推广,微信小程序登录授权3 pytest Fixture 3.1 通过 conftest.py 共享 fixture3.2 使用 fixture 执行配置及销毁逻辑3.3 使用 --setup-show 回溯 fixture 的执行过程3.4 使用 fixture 传递测试数据3.5 使用多个 fixture3.6 指定 fixture 作用范围3.7 使用 usefixtures 指定 fixture3.8 为常用 fixture …

3 pytest Fixture

  • 3.1 通过 conftest.py 共享 fixture
  • 3.2 使用 fixture 执行配置及销毁逻辑
  • 3.3 使用 --setup-show 回溯 fixture 的执行过程
  • 3.4 使用 fixture 传递测试数据
  • 3.5 使用多个 fixture
  • 3.6 指定 fixture 作用范围
  • 3.7 使用 usefixtures 指定 fixture
  • 3.8 为常用 fixture 添加 autouse 选项
  • 3.9 为 fixture 重命名
  • 3.10 Fixture 的参数化
  • 3.11 参数化 Tasks 项目中的 fixture

fixture 是在测试函数运行前后,由 pytest 执行的外壳函数,其中代码可定制,主要包括:

  • 定义传入测试中的数据集
  • 配置测试前系统的初始状态
  • 为批量测试提供数据源

请添加图片描述

3.1 通过 conftest.py 共享 fixture

fixture 可放在单独的测试文件中,也可在放在某公共目录下的 conftest.py 文件中供所在及其子目录下的多个测试文件共享

3.2 使用 fixture 执行配置及销毁逻辑

fixture 函数会在测试函数之前运行,但若含 yield,就会在 yield 处停止,转而运行测试函数,测试函数执行完毕后再回到 fixture,继续执行 yield 后面的代码

fixture 中 yield 之前的代码 --> 测试函数 --> fixture 中 yield 之后的代码

  • 即:fixture 中 yield 之前的代码 = setup;fixture 中 yield 之后的代码 = teardown
  • 注意:无论测试过程中发生什么,yield 之后的代码都会被执行

请添加图片描述

3.3 使用 --setup-show 回溯 fixture 的执行过程

使用 --setup-show 选项可展示测试过程中执行的是什么,以及先后顺序
请添加图片描述

3.4 使用 fixture 传递测试数据

除了堆栈跟踪的内容,pytest 还给出了具体引起 assert 异常的函数参数值

  • fixture 作为测试函数的参数,也会被堆栈跟踪并纳入测试报告

在这里插入图片描述
若 assert 异常(或任何类型的异常)就发生在fixture,仍可正确定位到,且报告为 ERROR(而不是 FAIL)
在这里插入图片描述

3.5 使用多个 fixture

请添加图片描述
使用 fixture 的优势在于:用户在编写函数时可以只考虑核心测试逻辑,而无需考虑测试前的准备工作

  • 注释中写 GIVEN/WHEN/ThHEN,fixture 中多写 GIVEN,可增加测试的可读性和可维护性

在这里插入图片描述

3.6 指定 fixture 作用范围

  • fixture 包含一个叫 scope可选参数,用于控制执行配置和销毁逻辑的频率,有4个待选值:
    • function(默认):每个测试函数运行一次
    • class:每个测试类运行一次
    • module:每个模块运行一次
    • session:每次会话运行一次
  • scope 参数是在定义而非调用 fixture 时定义的,即:使用 fixture 的测试函数无法改变其作用范围
  • fixture 只能使用同级别即以上的 fixture,如:类级别的 fixture 可使用类、模块和会话级别的 fixture,但不能使用函数级别的 fixture
    在这里插入图片描述

3.7 使用 usefixtures 指定 fixture

使用 fixture,除了以上在测试函数参数列表中指定 fixture 外,也可以用 pytest.mark.usefixtures('fixture1', 'fixture2') 标记测试函数或类

  • usefixtures 参数列表中的 fixture 为字符串,即需要加引号
  • usefixtures 对测试函数来讲意义不大,但非常适合测试类
  • usefixtures 不能使用 fixture 的返回值,但在测试方法中添加 fixture 参数的方式可以

在这里插入图片描述

3.8 为常用 fixture 添加 autouse 选项

autouse=True 可使作用域内的测试函数都运行该 fixture,而不需要指名调用
在这里插入图片描述

3.9 为 fixture 重命名

可以使用 @pytest.fixture()name 参数对 fixture 重命名

  • 重命名后原名不可用
    在这里插入图片描述
    pytest 的 --fixtures 选项可列举所有可供测试使用的 fixture,包括重命名的
    在这里插入图片描述

3.10 Fixture 的参数化

使用参数化 fixture,每个使用该 fixture 的测试函数都可以被运行多次

  • 未指定 id
    在这里插入图片描述
  • 以列表指定 id
    在这里插入图片描述
  • ids 参数也可以被指定为一个函数,供 pytest 生成 task 标识

3.11 参数化 Tasks 项目中的 fixture

之前 Tasks 项目用的数据库都是 TinyDB,现改为既可使用 TinyDB,也可使用 MongoDB

  1. fixture 装饰器中添加 params=['tiny', 'mongo']
  2. request 添加到 temp_db 参数列表中
  3. 将 db_type 的值设定为 request.param,避免直接使用 ‘tiny’ 或 ‘mongo’

在这里插入图片描述

http://www.yayakq.cn/news/612326/

相关文章:

  • 专注电子商务网站建设网站建设app开发合同
  • 做攻略的网站好国外很炫酷的网站
  • 做彩票网站违法吗vps网站管理助手教程
  • 郑州网站公司哪家好网站app开发平台
  • 中国农村建设投资有限公司网站首页做暧暧网站免费
  • 北京时代 网站建设全自动推广引流软件
  • 软件市场广东seo站外推广折扣
  • 无锡专业做网站的公司哪家好做产品的淘宝客网站
  • 网站建设目标责任ui设计基础
  • seo包括网站建设吗网站高防空间
  • 成都分想设计公司网站自己做免流网站
  • 网站开发有哪些语言wordpress 行间距
  • 建设集团网站的作用wordpress主题lenews
  • 泗阳做网站公司呼市建设官方网站
  • 原则网站设计版式网站建设公司工资标准
  • 广州网站建设网站优化网站推广电商销售渠道有哪些
  • 杭州网站建设制作公司做商业网站需要注册公司吗
  • 怎么做网站上的模拟动画金华婺城建设局网站
  • 客户型网站wordpress 整合
  • 学校学生网站模板下载企业的网站做一个要多少
  • 外贸网站建设是什么意思北京自助企业建站模板
  • dedecms调取友情链接 网站类型wordpress all in one seo插件
  • 网站建设与运营公司部门结构网站网站建设设计
  • 东莞网站seo技术网站怎么做动静分离
  • 沈阳网站建设索王道下拉中小企业网站制作费用是多少?
  • 文登住房和城乡建设局网站苏州网络推广商
  • wordpress电影站群怎么建电子商务网站
  • 网站提交订单付款才跳转怎么做广州比较大的外贸公司
  • wordpress 企业网站 免费广东东莞免费网站制作公司
  • 济南网站建设培训做网站后台系统的规范