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 默认的用例匹配规则:

  1. 测试模块必须以 test_ 开头或以 _test 结尾
  2. 测试类必须以 Test 开头,且不能有 __init__() 
  3. 测试方法必须以 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可以查看到我们添加的标记名称。

再次执行用例

运行结果没有告警提示


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值