pytest用法,pytest python

  pytest用法,pytest python

  @ pytest . mark . pytest-dependency decorator of test设置测试用例之间的依赖关系_mb62abf3afb54fb _ blog的技术博客

  1.前言:这是一个pytest第三方插件,主要解决用例之间的依赖关系。如果依赖上下文测试用例失败,后续用例将被标记为跳过执行,这相当于执行pytest.mark.skip

  2.依赖关系可用于以下领域:会话、包、模块和类。

  3.安装pip安装pytest-依赖项

  4.官方例子:pytest-de dependency

  在TestCase类下编写的基本用法用例:

  1.首先在用例的开头标记一个decoration @ pytest . mark . dependency(),表示这个用例为主条件。如果这个用例失败,与之相关的用例将会跳过执行。

  2.在相关的用例上,也用参数标记decorator @ py test . mark . dependency()。依赖项接受的参数是相关的依赖用例名称。

  3.您还可以在depends中通过别名指定用例名称。

  测试类下函数路径的实现【通过指定测试类下的测试用例方法(相当于使用nodeid,即测试用例路径的方式)】

  运行结果:

  函数名依赖的实现【通过指定需要依赖测试函数的测试方法名】

  通过别名指定[通过为指定的依赖项设置依赖项名称(即,为依赖用例设置别名)]

  官方API定义依赖范围的详细说明我们可以看到,scope可以接受四种类型的参数定义(“session”、“package”、“module”或“class”)

  Scope=class 作用于所属类,外部类不会关联。

  运行结果:

  Scope=module 不传递Scope参数,即默认参数是module,它作用于当前的py文件。只会找到当前文件的合格文件名,不会依赖类中同名的方法。

  运行结果:

  Scope=package 作用于当前目录同级的依赖函数,跨目录找不到依赖函数。

  运行结果:

  scope=“session”在范围上是全局的,可以跨目录调用。但是,必须首先执行依赖用例,例如示例中的test01,否则,例程执行将会跳过!

  运行结果:

  注意,如果依赖上下文测试用例用@ pytest . mark . parameter iz参数化,测试函数的方法名依赖就不能实现测试用例的依赖。[因为通过了。pytest_cache文件,我们知道测试用例的nodeid就是路径用例参数化的参数。当在依赖上下文测试用例中使用用例参数化时,测试用例的nodeid不再简单地特定于测试方法,而是特定于示例的参数]

  当我们使用测试方法依赖时,可以在依赖参数化用例的同时,将依赖测试方法的完整nodid转移到依赖测试方法的depnds参数,如下:。

  (3)通过为依赖和依赖测试方法指定别名来依赖上下文用例,如下所示:(2)正常。

  用例之间的依赖关系一般出现在类似于主业务流程的测试脚本中(即一个模块中可能有多个测试方法,测试方法之间有业务关系),所以一般来说,用例的参数化中只有一个用例(即测试方法虽然参数化了,但仍然相当于只是一个用例:比如生成了一个特定的测试数据)。

  当然,如果依赖测试方法中的测试用例参数化后形成了多个测试用例,那么多个测试用例就是依赖的,只有当依赖测试用例的所有执行结果都通过时,才会执行依赖测试方法,否则仍然会跳过依赖测试方法。

  例如:异常:test_d测试用例依赖于test_a测试用例,test_b测试用例依赖于test_d测试用例,test_c测试用例依赖于test_b测试用例。

  导入pytest

  从tools.common.log_process导入*

  @ record(OS . path . basename(_ _ file _ _)。拆分(.)[0])

  @pytest.mark.dependency()

  @ pytest . mark . parameter ize( data ,[1])

  定义测试_a(数据):

  #数据=1

  断言数据==1

  @ record(OS . path . basename(_ _ file _ _)。拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ test _ a ])

  定义测试_d():

  断言为真

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ test _ d ])

  定义测试_b():

  断言 ooo==oo

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ test _ b ])

  定义测试_c():

  断言“微光”是“微光”运行结果:

  正常:# -*-编码:utf-8 -*-

  导入pytest

  从tools.common.log_process导入*

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @pytest.mark.dependency()

  @ pytest。马克。参数ize( data ,[1])

  定义测试_a(数据):

  #数据=1

  断言数据==1

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ test _ a[1]])

  定义测试_d():

  断言为真

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ test _ d ])

  定义测试_b():

  断言 ooo==oo

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ test _ b ])

  定义测试_c():

  断言“微光”是“微光”运行结果:

  正常# -*-编码:utf-8 -*-

  导入pytest

  从tools.common.log_process导入*

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(name= a )

  @ pytest。马克。参数ize( data ,[1])

  定义测试_a(数据):

  #数据=1

  断言数据==1

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(名称= b ,依赖项=[a])

  定义测试_d():

  断言为真

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(name= c ,depends=[b])

  定义测试_b():

  断言 ooo==oo

  @记录(OS。路径。basename(_ _ file _ _).拆分(.)[0])

  @ pytest。马克。依赖项(depends=[ c ])

  定义测试_c():

  断言“微光”是“微光”运行结果:

  去期待陌生,去拥抱惊喜。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: