干货分享丨pytest钩子函数二用例

今天这一篇主要给大家介绍pytest中用例收集的钩子函数,收集钩子,顾名思义就是pytest在用例收集阶段会执行的钩子函数,直接进入正题。

pytest_collectiont

设置pytest收集用例执行的流程,这个钩子函数一般不需要重写,除非你想自己制定pytest用例收集的流程。

参数

session:pytest会话对象

触发时机:

收集用例之前执行,执行该钩子进行用例收集

pytest默认的用例收集流程为

1、以session作为初始收集器,按照下面的流程,收集所有测试用例

执行

pytest_collectstart(collector)开始收集

执行

report=pytest_make_collect_report(collector),创建一个收集报告对象

收集过程中,如果出现交互异常,则执行

pytest_exception_interact(collector,call,report)

对收集的节点进行判断,如果是用例执行

pytest_itemcollected(item),如果是收集器则进行递归处理。

执行

pytest_collectreport(report),处理收集的报告

2、对收集到的用例进行修改。

执行

pytest_collection_modifyitems(session,config,items)

3、整理收集到的测试用例。

执行

pytest_collection_finish(session)

4、将收集的用例保存到session.items中。

5、将收集的用例数量设置为session.testscollected属性。

pytest_ignore_collect

参数

collection_path:路径

config:pytest配置对象

触发时机:

对文件和目录进行收集之前会执行改钩子函数

返回值:

布尔值(会根据返回值为True还是False来决定是否收集改路径下的用例)

pytest_collect_file

搜索测试文件路径的钩子函数

参数

file_path:收集的路径

parent:父级目录路径

触发时机:

对每个路径进行收集之前会执行改钩子函数

返回值:

布尔值(会根据返回值为True还是False来决定是否收集该路径下的用例

pytest_pycollect_makemodule

收集测试模块的钩子函数,每个测试模块都会调用该钩子函数进行收集

参数

module_path:模块路径

触发时机:

搜索测试模块触发的钩子函数

返回值:

模块

pytest_pycollect_makeitem

收集模块中用例的钩子函数,对模块中的用例进行收集

参数

collector:模块对象

name:名称

obj:对象

触发时机:

对文件和目录进行收集之前会执行改钩子函数

返回值:

pytest_generate_tests

根据用例参数化传入的参数数量生成测试用例,生成测试用例

参数

metafunc:元函数

触发时机:

对用例方法进行参数化,生成用例

pytest_make_parametrize_id

参数化生成用例时,生成parametrize_id(默认情况下参数化生成的用例名由原用例名和parametrize_id组成),可以通过该钩子函数修改生成用例的方法名。

参数

config:pytest配置对象

val:参数化值

argname:pytest生成的自动参数名称

触发时机:

对用例方法进行参数化,生成用例名称

返回参数化的id

pytest_markeval_namespace

收集用例时评估被xfail或skipif标记用例的条件,改变测试跳过的钩子:

参数

config:pytest配置对象

触发时机:

收集的用例被xfail或skipif标记用例时触发

pytest_collection_modifyitems

用例收集完成后,可以通过该钩子函数修改用例的顺序,删除或以其他方式修改测试用例。

参数

session:pytest会话对象

config:pytest配置对象

items:测试用例列

触发时机:

用例收集完后调用该钩子函数

pytest_collection_finish

参数

session:pytest会话对象

触发时机:

在收集完用例和修改收用例集之后调用



转载请注明地址:http://www.shiquanren.net/itfl/itfl/27128.html


  • 上一篇文章:
  • 下一篇文章: 没有了
  • 公司简介 广告合作 发布优势 服务条款 隐私保护 网站地图 版权声明