PyTest
一、基本用法:
1.测试框架做了什么:
(1).测试发现
a.创建test_开头的文件
b.创建Test开头的类
c.创建test_开头的函数或方法
pytest中以每一个函数或方法作为一个用例
pytest主要以名字区分普通函数(方法)、用例
pytest的启动方式:在给定的项目中执行pytest命令即可
pytest输出用例的收集、执行、汇总信息
(2)断言:
内容判断机制,如果判断失败,则抛出异常
对于测试框架:
没有异常,则判断为通过
存在异常,判定为测试失败
(3).测试结果说明:
缩写 | 单词 | 含义 |
. | passed | 通过 |
F | failed | 失败(用例执行时报错) |
E | error | 出错(fixture执行报错) |
s | skipped | 跳过 |
X | xpassed | 预期外的通过 |
x | xfailed | 预期内的失败 |
二、高级用法:
1.mark:
标记是为了用例之间彼此不同,实现用例的筛选
标记的使用步骤:
a.注册标记
b.贴上标记
c.筛选标记
除了自己注册的标记之外,pytest还内置了一些标记:跳过、预期失败、参数化、调用fixture
第三方插件也会内置一些标记:执行顺序、执行依赖、失败重试
2.fixture:
自动的在用例之前、之后完成、用于测试环境的构建和销毁
使用生成器实现前置、后置的分离
a.fixture作用范围:支持5级范围
b.同一范围内的用例:共享fixture
c.conftst.py创建全局范围的fixture
3.hook:
钩子:当pytest在合适的时机运行,进入、退出pytest核心内部
目的:改变pytest原有的处理方式和运行模式