前言
pytest的代码结构适合定制和扩展插件,可以借助hook函数和fixture函数来扩展
具体的hook函数参考:
link.
如何编写插件
如果需要改变pytest的原有行为,就可以借助hook函数
比如,这个hook函数:
def pytest_runtest_logstart(
nodeid: str, location: Tuple[str, Optional[int], str]
) -> None:
“””Called at the start of running the runtest protocol for a single item.
这个hook函数pytest_runtest_logstart(),是在run单个item时调用
什么是item
一个基本的测试调用项
pytest有一个类Item,继承自node类
一个函数可以形成多个item,如果这个函数参数化测试用例或者参数化fixture
Item有一个方法runtest()运行测试用例
什么是nodeid
每一个collected的item都被赋予一个唯一的nodeid,这个nodeid是由类名,函数名以及参数组成,由::分割
现在要实现这个hook函数pytest_runtest_logstart,打印出每个item的nodeid
可以在conftest.py文件中实现该功能:
最终运行结果:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!