出处:https://www.cnblogs.com/yoyoketang/p/9401554.html

前言:

上一篇介绍了fixture通过scope参数控制setup级别,我们一起来温故下fixture的特点吧:

fixture(scope = "function", params=None, autouse=False, ids=None, name=None)

1.  fixture使用装饰器标记功能

2.  arg scope:scope有四个等级参数----"function" (默认), "class", "module" or "session"

scope = ‘module’

1. fixture参数scope='module',module是作用于整个.py文件的,用例调用时,参数写上函数就行

从运行结果中可以看出,虽然test_s1、test_s2、test_s3都调用了open函数,但是它只在第一个函数前执行了一次

2. 如果test_s1不调用,test_s2(调用open),test_s3不调用,运行顺序会是怎样的?

从运行结果中可以看出,module级别的fixture在当前.py模块里,只会在用例test_s2前调用执行一次。

yield 执行 teardown

1. 前篇讲的是在用例前加前置条件,相当于setup,既然有setup,那就有teardown,fixture里面的teardown有yield来唤醒teardown的执行。

yield遇到异常

1. 如果其中一个用例出现异常,不影响yield后面的teardown执行,运行结果互不影响,并且全部用例执行完之后,yield呼唤teardown操作。

2.如果在setup就异常了,那么是不会去执行yield后面的teardown内容了

3. yield也可以配合with语句使用

4. addfinalizer 终结函数--以后再研究

yield和addfinalizer方法都是在测试完成后呼叫相应的代码。但是addfinalizer不同的是:

  • 他可以注册多个终结函数。

  • 这些终结方法总是会被执行,无论在之前的setup code有没有抛出错误。这个方法对于正确关闭所有的fixture创建的资源非常便利,即使其一在创建或获取时失败

pytest自动化4:fixture之yield实现teardown的更多相关文章

  1. pytest文档6-fixture之yield实现teardown

    前言 上一篇讲到fixture通过scope参数控制setup级别,既然有setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作. 这里用到fixture的teardown操作并 ...

  2. pytest 5. fixture之yield实现teardown

    前言: 1.前面讲的是在用例前加前置条件,相当于setup,既然有setup那就有teardown,fixture里面的teardown用yield来唤醒teardown的执行 看以下的代码: #!/ ...

  3. pytest自动化2:测试用例setup和teardown

    前言: pytest支持函数和类两种用例方式,针对每种情况都有不同的代码 pytest用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(s ...

  4. pytest进阶之fixture

    前言 学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unit ...

  5. pytest_06_fixture之yield实现teardown

    上一篇讲到fixture通过scope参数控制setup级别,既然有setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作. 这里用到fixture的teardown操作并不是独 ...

  6. Pytest【定制fixture】

    在pytest中的fixture是在测试函数运行前后,由pytest执行的外壳函数,fixture中的代码可以定制,满足多变的测试需求:包括定义传入测试中的数据集.配置测试前系统的初始化状态.为批量测 ...

  7. pytest进阶之fixture函数

    fixture函数存在意义 与python自带的unitest测试框架中的setup.teardown类似,pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.但是相 ...

  8. 【pytest系列】- fixture测试夹具详解

    如果想从头学起pytest,可以去看看这个系列的文章! https://www.cnblogs.com/miki-peng/category/1960108.html fixture的优势 ​ pyt ...

  9. pytest框架之fixture前置和后置

    一.conftest.py 定义公共的fixture,多个测试类中都可以调用 pytest提供了conftest.py文件,可以将fixture定义在此文件中 运行测试用例时,不需要去导入这个文件,会 ...

随机推荐

  1. mysql 基本sql使用总结-电商项目

    一.增加 1. 设置插入数据后自动返回主键 主键返回策略只适用于单个对象的插入: 主键返回策略: (1) 单独参数 直接用set方法 (2)  map 对象名.id (3) 多参数列表 对象名.id( ...

  2. flex:1详解(转)

    转载自:https://blog.csdn.net/fengyjch/article/details/79047908 flex 是 flex-grow.flex-shrink.flex-basis的 ...

  3. My Team——面向对象与软件工程实验三

    My Team 一.Name GDTX(团队成员姓氏的拼音首字母组成) 二.项目描述 微信小程序(小洁便签): 1,功能齐全:小洁便签具有大多数便签APP所具有的添加.查看.修改和删除便签内容以及插入 ...

  4. 567. Permutation in String字符串的排列(效率待提高)

    网址:https://leetcode.com/problems/permutation-in-string/ 参考:https://leetcode.com/problems/permutation ...

  5. rem 转 px

    (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ...

  6. leetcode 78,236,300

    ---恢复内容开始--- 2018.3.16目前已刷27题,打卡记录有意思的题目. leetcode78 subsets 思路1:DFS遍历子集,每遇到一个数就把该数加上原来的子集变成新的子集. cl ...

  7. 简单测试 Kotlin native 性能

    准备 一直使用kotlin JVM平台开发服务器的应用,最近想试试看 Kotlin native的性能. 我使用的是 kotlin native 1.3.21,要使用他非常的简单,下载最新的 IDEA ...

  8. eslint常用关闭校验语句

    1. 关闭段落校验 /* eslint-disable */some code some code /* eslint-enable */ 2. 关闭当前行校验 some code // eslint ...

  9. TCP建立连接三次握手和释放连接四次握手

    TCP建立连接三次握手和释放连接四次握手     [转载]http://blog.csdn.net/guyuealian/article/details/52535294   在谈及TCP建立连接和释 ...

  10. chrome 和IE 上传的文件,在net 后台取值Request.Form.Files[0].FileName 的不同

    chrome 和IE 上传的文件,在net 后台取值Request.Form.Files[0].FileName 的不同 chrome 获得的是不含路径的纯文件名 IE获得的是含路径的文件名