pytest简单使用

一:Mark

1.注册标记

在项目根目录下创建固定名为 pytest.ini 的配置文件,文件格式需要加上 pytest ,然后通过 markers 注册自定义标记

2.贴上标记

通过@pytest加上装饰器,然后pytest.mark.XX配置自定义的标记,一个测试用例可以含有多个标记

3.筛选标记

pytest -m xx(自定义标记名称) 筛选单个标记执行

pytest -m "api or ui(自定义标记名称)" 筛选多个标记执行

二:fixture

自动的在用例执行前或执行后完成,用于测试环境的构建和销毁

1.设置fixture:

函数 fyt() 没有@pytest.fixture注解,则是python的生成器,有了@pytest.fixture注解,则是pytest的fixture

2.用例调用fixture:
方法1:在测试用例参数中加入fixture的方法名则可以调用

方法二:参数中没有fixture的方法名,但使用 @pytest.mark.usefixtures('fyt') 注解也能正常使用

结果:

优点:如果是python的函数生成器执行,执行方法报错则后置代码不执行,但是fixture即使报错了也会执行后置代码

3.fixture的作用范围:

五级作用范围,fixture可以调用fixture,但作用范围小的可以调用作用范围大的,反之不可

每个范围内的用例共享fixture

conftest.py 创建全局范围fixture,只需要吧fixture的代码放进文件中即可,用例代码不需要动

三.hook

当pytest在合适的时机,允许我们进入和退出pytest核心内部

目的:改变pytest原有的处理方式,运行模式

首先在 conftest.py 文件中添加钩子,钩子函数名字要使用pytest自带的钩子名,不然需要添加自定义钩子,

运行后发现该沟子的逻辑在用例执行前就先被执行了

相关推荐
Yolanda_202227 分钟前
在vscode终端中可使用pip,但是cmd终端中找不到命令 pip问题的解决
vscode·python·conda·pip
2301_7644413339 分钟前
用动力学系统(微分方程)为 Kernberg 的客体关系单元提供数学化的操作定义,把“自体—客体“这对心理结构建模成一个二维耦合系统
数据结构·python·算法·数学建模
dogstarhuang1 小时前
用 Doubao-Seed-Evolving + Python 免费写一个网页正文提取工具(实战教程)
爬虫·python·ai编程
猫头虎2 小时前
什么是ZCode for GLM-5.2?
开发语言·人工智能·python·科技·算法·ai编程·ai写作
心运软件2 小时前
Python实战:中国大学排行榜数据采集与可视化大屏
后端·python
长不胖的路人甲2 小时前
什么是赫夫曼树(哈夫曼树 / Huffman Tree)
python·算法·霍夫曼树
魔镜er2 小时前
03-张量
人工智能·pytorch·python
37.2℃9953 小时前
Claude Design哪个公司技术好
python·设计模式
157092511343 小时前
【无标题】
开发语言·python·算法
AI工具人PM产品经理3 小时前
CSDN 自动发布全流程实战:从 CKEditor HTML 注入到创作页就地发布
python