pytest教程-19-pytest.ini配置文件

领取资料,咨询答疑,请➕wei:  June__Go

上一小节我们学习了pytest内置fixture的使用方法,本小节我们讲解一下pytest.ini文件的配置方法。

pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。

pytest里面有些文件是非test文件

  • pytest.ini pytest的主配置文件,可以改变pytest的默认行为
  • conftest.py 测试用例的一些fixture配置
  • __init__.py 识别该文件为python的package包
  • tox.ini 与 pytest.ini类似,用tox工具时候才有用
  • setup.cfg 也是ini格式文件,影响setup.py的行为

pytest.ini文件基本格式

# 新建pytest.ini文件,一般放在项目的顶级目录下,不能随意命名

[pytest]

addopts = -v --rerun=2 --count=2
xfail_strict = true

使用pytest --help参看帮助文档,找到这行:ini-options in the first pytest.ini|tox.ini|setup.cfg file found

以下是一些常用的配置:
1、addopts 设置自定义执行参数

代码如下(示例):

[pytest]
# 命令行参数,用空格分隔
addopts = -v -s --reruns 1 --html=report.html

说明:

  • –reruns: 失败重跑次数
  • –count: 重复执行次数
  • -v: 显示错误位置以及错误的详细信息
  • -s: 等价于 pytest --capture=no 可以捕获print函数的输出
  • -q: 简化输出信息
  • -m: 运行指定标签的测试用例
  • -x: 一旦错误,则停止运行
  • –maxfail: 设置最大失败次数,当超出这个阈值时,则不会在执行测试用例
  • –html=report.html 生成测试报告

注意:当ini配置文件的参数与run文件里的命令参数重复时,命令行的参数值会覆盖ini配置文件中定义的参数值

2、更改测试用例收集规则

pytest默认的测试用例收集规则

文件名以 test_*.py 文件和 *_test.py

以 test_ 开头的函数

以 Test 开头的类,不能包含 __init__ 方法

如果需要修改这些规则,可以在pytest.ini文件中加入以下配置:

[pytest]
#测试用例收集规则
python_files =  test_*.py  *_test.py    # 文件名
python_classes = Test*                      # 类
python_functions = test_*                  # 函数

多个匹配规则以空格分开

3、testpaths–设置用例执行目录

[pytest]
# 读取测试用例的起始文件夹,多个路径用空格分隔。
注意:这些目录下不能出现相同文件名,否则会报错
testpaths = ./testcase

4、norecursedirs-排除某些用例搜索目录

[pytest]
norecursedirs = venv report util log      #排除指定用例搜索目录

5、markers–标记分组参数

[pytest]
markers =
    smoking :
    high    :
    medium  :
    lower   :

测试用例中标识,运行pytest -v -m smoking,只执行含有smoking标记的测试用例
代码如下(示例):

@pytest.mark.smoking
def test_01():
    pass

6、禁用XPASS

设置xfail_strict = True可以让那些标记为@pytest.mark.xfail 实际通过显示XPASS的测试用例被报告为失败。

[pytest]
xfail_strict=False

7、指定pytest最低版本

[pytest]
minversion = 7.0

8、log_cli控制台实时输出日志

格式: log_cli=True 或 log_cli=False (默认),或者 log_cli=1 或 log_cli=0

[pytest]
log_cli=True

详细日志设置,如下:

[pytest]
log_cli=True #日志开关
log_file = pytest.log #日志文件
log_file_level = INFO #日志级别
log_file_format = %(asctime)s | %(filename)s | %(funcName)s | line:%(lineno)d | %(levelname)s | %(message)s #日志文件格式
log_file_date_format = %Y-%m-%d %H:%M:%S #日志文件中时间戳的格式

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走,希望可以帮助到大家!领取资料,咨询答疑,请➕wei:  June__Go

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值