对应的视频教程:
https://www.bilibili.com/video/BV1py4y1t7bJ?p=4
https://www.bilibili.com/video/BV1py4y1t7bJ?p=5
默认规则
- 模块名必须以test_开头或者_test结尾
- 测试类必须以Test开头,并且不能有init方法
- 测试方法必须以test开头
运行方式
- 主函数模式
- 命令行模式
- 通过读取pytest.ini配置文件运行
主函数模式
- 运行所有
import pytest
class Test_login:
def test_C001001(self):
print('\ncaseC001001')
assert 1 == 1
if __name__ == "__main__":
pytest.main()
注:pytest.main()
默认会执行目录下所有的测试用例,即使测试类在别的模块中,也会被执行
- 指定路径执行
pytest.main('-vs', '路径')
- 根据nodeid执行
pytest.main('-vs', '模块路径::类名::方法名')
命令行模式
- 执行所有
在根目录执行
pytest
- 指定路径执行
pytest -vs 路径
- 根据nodeid执行
pytest -vs 模块路径::类名::方法名
配置文件
pytest.ini
是pytest单元测试框架的核心配置文件
- 位置:一般放在项目的根目录
- 编码:必须是ANSI
- 作用:改变pytest默认的行为
- 机制:不管是主函数模式、命令行模式,都会读取这个文件
pytest.ini
:
[pytest]
addopts = -vs
testpaths = ./testcase
python_files = test_*.py
python_classes = Test*
python_functions = test
markers =
smoke: 冒烟用例
usermanage: 用户管理模块
可用参数
参数 | 说明 |
---|---|
-s | 表示输出调试信息,包括print的内容 |
-v | 输出详细信息 |
-n 线程数 | 支持多线程或者分布式运行测试用例 |
--reruns=重跑次数 | 设置失败后重跑 |
-x | 只要有一个失败,测试停止 |
--maxfail n | 失败次数达到n时,停止测试 |
-k | 根据测试用例的部分字符串指定测试用例 |
执行顺序
pytest默认是从上到下执行,指定顺序需要pytest-ordering
## 用装饰器指定用例第n个执行
@pytest.mark.run(order=n)
版权属于:木 白
本文链接:https://www.moehz.com/archives/02_pytest_run.html
版权声明:本站所有文章采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。