Pytest_配置文件-pytest.ini(4)
pytest配置文件可以改变pytest的默认运行方式,它是一个固定的文件名称pytest.ini。
存放路径为项目的根目录
解决中文报错
在讲解配置文件的可用参数前,我们先解决一个高概率会遇到的问题, 那就是在pytest.ini文件 中不能使用任何中文符号,否则会报错:UnicodeDecodeError: 'gbk' codec can't decode
解决方法:点击倒数第二行的报错,进入iniconfig模块,找到其前面一行代码的open()函数,在open函数中中增加 encoding='utf-8'参数
配置文件的参数值会被命令行覆盖
当配置文件的参数与命令文件的参数重复时,命令行的参数值会覆盖配置文件中定义的参数值。、
比如下图,命令行参数值为3,pytest.ini参数值为2,实际执行的参数值为3
addopts-追加默认参数
我们每次在CMD中执行pytest命令时,如果参数是固定的,可以使用该参数项减少繁琐的操作。比如CMD中输入以下命令:
pytest -v --reruns 1 --html=report.html
在配置文件中,我们可以这样配置:
[pytest]
# 命令行参数,用空格分隔
addopts = -v --reruns 1 --html=report.html
配置好后,我们在命令直接执行pytest就不需要在追加参数了
testpaths-指定测试用例搜索目录
testpaths用于指定测试用例的搜索目录,可以指定一个或多个目录,多个目录需要用空格隔开,需要注意的是,多个目录下不能存在相同名称py文件,否则会抛错。
修改相同名称的py文件后的结构如下:
将两个测试用例的目录添加到pytest.ini配置文件
[pytest]
# 读取测试用例的起始文件夹,多个路径用空格分隔。注意:这些目录下不能出现相同文件名,否则会报错
testpaths = ./testcase ./testcase-copy
执行结果如下:
python_files & python_classes & python_functions 修改pytest默认搜索用例的规则
pytest 默认的用例匹配规则:
- 测试模块必须以 test_ 开头或以 _test 结尾
- 测试类必须以 Test 开头,且不能有 __init__()
- 测试方法必须以 test_ 开头
pytest.ini配置文件可以使用python_files、python_calsses、python_functions修改默认的用例匹配规则。
- 使用python_files可以自定义测试模块的匹配规则
- 使用python_classes可以自定义测试类的匹配规则
- 使用python_functions可以自定义测试方法的匹配规则
上面3个配置项支持多个匹配规则,多个匹配规则用空格隔开。
在了解配置字段后,我们添加自己的匹配规则:
- 添加 my 开头的测试模块
- 添加 My 开头的测试类
- 添加 my 开头的测试方法
[pytest]
# 配置搜索的模块文件名称。匹配以test开头py结尾的文件
python_files = test*.py my*.py # 配置搜索的测试类名
python_classes = Test* My* # 配置搜索的测试方法名
python_functions = test* my*
执行结果
markers-注册mark标记
当我们使用 @pytest.mark.标记名称 时,如果使用的自定义标记,当在执行用例追加参数 -m=标记名称 时,虽然不会影响测试执行,但是在执行后会出现告警提示。
我们可以在pytest.ini配置文件增加 markers 字段注册标记名称
[pytest]
# 注册标记名称
markers =
smoke: 冒烟测试用例
normal: 正常用例
添加后,使用pytest --markers可以查看到我们添加的标记名称。
再次执行用例
运行结果没有告警提示
Pytest_配置文件-pytest.ini(4)的更多相关文章
- pytest十三:配置文件 pytest.ini
pytest 配置文件可以改变 pytest 的运行方式,它是一个固定的文件 pytest.ini 文件,读取配置信息,按指定的方式去运行. ini 配置文件pytest 里面有些文件是非 test ...
- 配置文件pytest.ini
前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行. ini配置文件 pytest里面有些文件是非test文件 py ...
- Pytest系列(14)- 配置文件pytest.ini的详细使用
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 pytest配置文件可以改变 ...
- pytest配置文件pytest.ini
说明: pytest.ini是pytest的全局配置文件,一般放在项目的根目录下 是一个固定的文件-pytest.ini 可以改变pytest的运行方式,设置配置信息,读取后按照配置的内容去运行 py ...
- Pytest(14)pytest.ini配置文件
前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行 查看pytest.ini的配置选项 pytest -h 找到以下 ...
- pytest文档18-配置文件pytest.ini
前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行. ini配置文件 pytest里面有些文件是非test文件 py ...
- Pytest学习笔记12-配置文件pytest.ini
前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行. 常用的配置项 marks 作用:测试用例中添加了自定义标记( ...
- pytest--mark基本使用(主要通过pytest.ini文件注册标签名,对用例进行标记分组)
1.pytest中的mark介绍 mark主要用于在测试用例/测试类中给用例打标记(只能使用已注册的标记 名),实现测试分组功能,并能和其它插件配合设置测试方法执行顺序等.如下 图,现在需要只执行红色 ...
- MySQL Cluster 配置文件(config.ini)详解
MySQL Cluster 配置文件(config.ini)详解 ################################################################### ...
随机推荐
- 项目cobbler+lamp+vsftp+nfs+数据实时同步(inotify+rsync)
先配置好epel源 [root@node3 ~]#yum install epel-release -y 关闭防火墙和selinux [root@node3 ~]#iptables -F [root@ ...
- linux基础-TCP/IP协议篇
一.网络TCP/IP层次模型 1.网络层次模型概念介绍:TCP/IP协议就是用于简化OSI层次,以及相关的标准.传输控制协议(tcp/ip)族是相关国防部(DoD)所创建的,主要用来确保数据的完整性及 ...
- Map集合的认识和理解
java.util.Map(k,v)集合* Map的特点:* 1.Map集合是一个双列集合,一个元素包含两个值(一个是key,一个是Value)* 2.Map集合中的元素,key和value的类型可以 ...
- maven依赖对zookeeper的版本冲突问题
我用的是springcloudAlibaba+zookeeper zookeeper下载后 1,修改配置文件,conf目录下的zoo_sample.cfg修改为zoo.cfg. 2,打开zoo.cfg ...
- Apache Log4j2远程代码执行漏洞攻击,华为云安全支持检测拦截
近日,华为云安全团队关注到Apache Log4j2 的远程代码执行最新漏洞.Apache Log4j2是一款业界广泛使用的基于Java的日志工具,该组件使用范围广泛,利用门槛低,漏洞危害极大.华为云 ...
- 《手把手教你》系列技巧篇(五十二)-java+ selenium自动化测试-处理面包屑(详细教程)
1.简介 面包屑(Breadcrumb),又称面包屑导航(BreadcrumbNavigation)这个概念来自童话故事"汉赛尔和格莱特",当汉赛尔和格莱特穿过森林时,不小心迷路了 ...
- 最新超详细VMware下CentOS系统安装
一.了解CentOS系统 CentOS是免费的.开源的.可以重新分发的开源操作系统,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统 ...
- LuoguP7852 「EZEC-9」Yet Another Easy Problem 题解
Content 给定 \(n,m\),你需要输出一个长度为 \(n\) 的排列,满足该排列进行不超过 \(m\) 次交换操作可以得到的最小的字典序最大. 数据范围:\(T\) 组数据,\(1\leqs ...
- CF1199B Water Lily 题解
Content 有一朵长在水中的莲花,其茎秆部分露出水面的高度为 \(h\).有人将它往右边拽了 \(l\) 米,使得整个茎秆部分都浸在水中.求池水的深度. 数据范围:\(1\leqslant h&l ...
- CF263B Squares 题解
Content 有 \(n\) 个边长为 \(a_i\) 的正方形,第 \(i\) 个正方形的四个顶点分别是 \((0,0),(0,a_i),(a_i,0),(a_i,a_i)\),我们定义一个点属于 ...