Pytest - Fixture(12) - 配置文件pytest.ini
Pytest - 配置文件 pytest.ini
前言
pytest.ini
配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。- 作用:可以改变 pytest 的默认行为;
- 位置:一般放在项目的根目录(即当前项目的顶级文件夹下);
- 命名:pytest.ini,不能使用任何中文符号,包括汉字、空格、引号、冒号等等;
- 注意:格式一般是固定的,建议不要输入中文;
- 主要用途:
- 用例标记
- 更改默认命令行选项
- 控制台实时输出日志
- 测试用例收集过滤
- 更改测试用例收集规则
marks
-
作用:测试用例中添加了
@pytest.mark.webtest
装饰器,如果不添加 marks 选项的话,就会报 warnings -
格式:list 列表类型
-
写法:
[pytest] markers = weibo: this is weibo page toutiao: toutiao xinlang: xinlang
xfail_strict
-
作用:
- 设置 xfail_strict = True 可以让那些标记为
@pytest.mark.xfail
; - 预测需要执行失败的用例(xfailed),结果为成功的(xpassed),就会直接显示为失败了(failed);
- 设置 xfail_strict = True 可以让那些标记为
-
格式:True 、False(默认),1、0
- 写法:
[pytest] xfail_strict = True
- 例如:
@pytest.mark.xfail def test_base_001(): assert 1==1 # 期望执行失败 @pytest.mark.xfail def test_base_002(): assert 1==2 # 期望执行失败
- 执行结果:
============================= test session starts ============================= collecting ... collected 2 items # test_base_001 期望执行失败的,但是执行结果为成功,所以用例状态为失败 failed demo_test.py::test_base_001 FAILED [ 50%] demo_test.py:11 (test_base_001) [XPASS(strict)] demo_test.py::test_base_002 XFAIL [100%] @pytest.mark.xfail def test_base_002(): > assert 1==2 E assert 1 == 2 E +1 E -2 demo_test.py:18: AssertionError ======================== 1 failed, 1 xfailed in 0.10s =========================
addopts
-
作用:
- addopts 参数可以更改默认命令行选项,这个当我们在 cmd 输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作
- 每次都这样敲不太现实,addopts 就可以完美解决这个问题
-
比如:想测试完生成报告,失败重跑两次,一共运行两次,通过分布式去测试,如果在cmd中写的话,命令会很长
pytest -v --rerun=2 --count=2 --html=report.html --self-contained-html -n=auto
-
写法:
[pytest] # 命令行参数 addopts = -v --reruns=1 --count=2 --html=reports.html --self-contained-html -n=auto
加了 addopts 之后,我们在 cmd 中只需要敲 pytest 就可以生效了!!
log_cli
-
作用:控制台实时输出日志
-
格式:
- log_cli = True 或 False(默认),
- log_cli =1 或 0
-
写法:
[pytest] lgo_cli = True
test
-
作用:更改测试用例收集规则 / 运行指定用例名称
-
格式:
- 模块文件名规则:
python_files = 格式/用例名称
- 测试类名规则:
python_classes = 格式/用例名称
- 测试函数名规则:
python_functions = 格式/用例名称
- 多个用例格式之间使用空格隔开
- 模块文件名规则:
-
写法:
[pytest] python_files = test_* *_test test* python_classes = Test* test* python_functions = test_01 test_02
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)