加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

这四种作用范围,让pytest测试框架的fixture功能更加灵活

发布时间:2020-03-26 20:25:06 所属栏目:资源 来源:站长网
导读:ixture有一个scope的可选参数,用于控制fixture执行配置和销毁逻辑的频率,有四个待选值,function、class、module、session,默认值是function。 参数待选值介绍 function 函数级别的fixture每个 测试 函数只执行一次,配置代码在 测试用例 运行之前执行
  ixture有一个scope的可选参数,用于控制fixture执行配置和销毁逻辑的频率,有四个待选值,function、class、module、session,默认值是function。  参数待选值介绍  function  函数级别的fixture每个测试函数只执行一次,配置代码在测试用例运行之前执行,销毁代码在测试用例运行之后执行,function是scope的默认值  class  类级别的fixture每个测试类只需要执行一次,无论测试类里有多少类方法都可以共享这个fixture  module  模块级别的fixture每个模块只需要一次,无论模块里有多少个测试甘薯、类方法或者其他fixture都可以共享这个fixture  session  会话级别的fixture每次会话只需要运行一次,一次pytest会话中所有测试函数、方法都可以共享这个fixture这四种作用范围,让pytest测试框架的fixture功能更加灵活  pytest --setup-show test_fixture_scope.py 运行测试用例,指定--setup-show参数,让控制台显示每个fixture被调用的测试,以及在各自作用范围下执行配置、销毁逻辑的顺序。 这四种作用范围,让pytest测试框架的fixture功能更加灵活  上图不仅出现了代表函数级别和会话级别的F和S,还出现了代表类级别和模块级别的C和M。作用范围虽然是由fixture自身定义的,但是scope在定义fixture时就已经定义了,不是在调用的时候定义,也就是说一个模块级别的fixture,只在这个模块运行一次。即使这个模块里多个参数函数都调用了这个fixture,但是也只会执行一次。  fixture只能使用同级别的fixture,或比自己级别更高的fixture,不能使用比自己级别低的fixture。比如类级别的fixture可以使用和自己同级别的类fixture,和模块、会话级别的fixture,但是不能使用函数级别的fixture。  scope实战  自实际测试用例运行中,我们可能在多个case或者多个模块中都需要建立数据库的链接,如果每次需要都去建立还是挺浪费资源的,其实我们在整个测试会话过程中只需建立一次链接,在会话结束时关闭链接即可。  这四种作用范围,让pytest测试框架的fixture功能更加灵活  使用usefixtures指定fixture  之前提高的指定fixture的方式都是通过在测试函数的参数列表里指定fixture,还可以用pytest的标记功能,@pytest.mark.usefixtures('fixture1', 'fixture2')标记测试函数或者类,可以指定一个或多个fixture。  这四种作用范围,让pytest测试框架的fixture功能更加灵活  fixture的autouse参数  autouse=True可以使的作用域内的测试函数都运行改fixture,可以实现那些需要运行多次、但是又不依赖任何系统状态或外部数据的初始化功能。  这四种作用范围,让pytest测试框架的fixture功能更加灵活这四种作用范围,让pytest测试框架的fixture功能更加灵活

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读