pytest中的钩子函数的使用
1 pytest_collect_file
它允许你自定义 pytest 如何从文件系统中收集测试文件。这个钩子函数在你想要自定义 pytest 收集测试文件的行为时非常有用。
接收两个参数:
file_path
:文件路径parent
:Collector 收集器,指向py文件或者yaml文件的父目录,即package
下面的代码实现的是,找到所有以yaml结尾的文件,从文件路径中根据运行目录匹配出要运行的yaml文件,进行yaml文件的数据处理,构建以test_
开头的测试方法并规定了方法里面要执行的内容,然后将方法包装为item去执行。参考的是:https://blog.csdn.net/Hogwartstester/article/details/129876861?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171578310616800211547150%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171578310616800211547150&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-129876861-null-null.nonecase&utm_term=%E6%95%B0%E6%8D%AE%E9%A9%B1%E5%8A%A8&spm=1018.2226.3001.4450
1 | # 将钩子函数写在conftest.py文件中 |
2 pytest_collection_modifyitems
pytest_collection_modifyitems
是 pytest 的一个内置钩子函数,它允许你在测试用例被收集完成之后,但在执行之前,对它们进行修改或重新排序。这个钩子函数通常用于定制测试用例的执行顺序、添加或删除标记(markers)、更改测试用例的名称等。
pytest_collection_modifyitems
钩子函数接收三个参数:
session
:一个表示 pytest 会话的对象,它包含了有关整个测试会话的信息。config
:pytest 的配置对象,它包含了从命令行选项、配置文件等中解析出的配置信息。items
:一个包含所有已收集测试用例(item)的列表。每个测试用例都是一个Item
对象,包含了关于测试用例的所有信息,如名称、标记、执行函数等。
可以通过修改 items
列表中的 Item
对象来改变测试用例的执行顺序或添加其他属性。例如,你可以使用 items.sort()
方法对测试用例进行排序,或者使用 item.add_marker()
方法给测试用例添加标记。
1 | # 将钩子函数写在conftest.py文件中 |