pytest–插件编写

前言

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进行处理,非常感谢!

上一篇 2022年1月12日
下一篇 2022年1月12日

相关推荐