1.pytest框架
1.1.测试框架
常用单元测试框架介绍
python内置测试框架:unittest
python第三方测试框架:pytest
为什么要使用测试框架:
1.测试发现:从不同的目录,文件中收集测试用例
2.用例执行:执行用例、并且收集测试结果(报告)
3.报告输出:用例数量、执行时长、失败原因、通过率
1.2 安装pytest
- pip install pytest
- pip:python包管理器
- install 进行安装的命令
- uninstall卸载的命令
- pytest 第三方库名字
验证安装就绪:pytest
1.3 编写用例
pytest充分的应用了python的特色:
- 函数
- 装饰器
- 生成器
pytest的用例要求:
- 创建test_开头的文件
- 创建test_开头的函数
- 使用assert断言
1 def test_ok(): 2 assert 1 == 1 3 4 5 def test_fail(): 6 assert 1 == 2
1.4 执行测试用例
1.命令行
pytest
2.代码
import pytest pytest.main()
1.5 查看运行结果
运行文件目录
windows系统版本--python版本-pytest版本-python插件系统
用例根目录(项目路径)
找到多少个用例
结果缩写
缩写 | 含义 |
. | 通过 |
F | 失败 |
E | 出错 |
s | 跳过 |
X | 预期外的通过 |
x | 预期内的失败 |
1.6 pytest发现规则
- 遍历所有的目录(特殊目录除外,比如venv)
- 打开test_开头、_test结尾的python文件
- 寻找Test开头的类,并且没有__init__方法的类
- 从类中按照函数的要求寻找方法
- 寻找test开头的函数:
- 不能拥有参数
- 不能拥有返回值
重点:在pytest中,只有函数和方法,才会被视为测试用例
用例不能拥有参数,因为pytest调用的时候,不知道如何传参
用例不能当做普通函数去调用,因为会违背用例的执行规则
典型现象:用例A调用用例B
用例自始至终,是供框架调用的,用例之间相互隔离,不能直接传递参数
2 pytest高级用法
2.1 配置
改变pytest默认的行事规则,有两种方式:
- 命令行选项
- ini配置文件
查看所有配置
pytest -h
例子1: pytest --capture=no
配置文件选项
例子2:
常用配置
[pytest]
addopts= --capture=no
addopts= --capture=no
常用选项:
- s:简化版 --capture=no
- v:详细显示执行情况
- q:简化显示执行情况
- x:快速退出
约定大于配置:对于成熟的工具来说,默认的配置或许就是最好的配置,如非必要,请勿修改