领取资料,咨询答疑,请➕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