pytest测试框架_带你深入理解自动化测试框架Pytest的配置文件!
都有哪些种类的配置文件
pytest.ini:pytest的主配置文件,可以改变pytest的默认行为
conftest.py:是本地插件库,其中的hook函数和fixture将作用于该文件所在的目录以及所有子目录
tox.ini: 如果使用到tox工具,也会有这个配置文件,可以把pytest的配置都写在tox.ini文件里,这样就不用同时写两个配置文件了
setup.cfg: 也采用的是ini文件的格式,而且可以影响setup.py的行为,使用python setup.py test运行所有测试用例
pytest 的配置选项
使用pytest --help可以查看pytest支持的所有配置的选项,以下只截取部分
markers (linelist): markers for test functions
empty_parameter_set_mark (string):
default marker for empty parametersets
norecursedirs (args): directory patterns to avoid for recursion
testpaths (args): directories to search for tests when no files or directories are given in the
command line.
usefixtures (args): list of default fixtures to be used with this project
python_files (args): glob-style file patterns for Python test module discovery
python_classes (args):
prefixes or glob names for Python test class discovery
python_functions (args):
prefixes or glob names for Python test function and method discovery
disable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):
disable string escape non-ascii characters, might cause unwanted side effects(use
at your own risk)
console_output_style (string):
console output: "classic", or with additional progress information ("progress"
(percentage) | "count").
xfail_strict (bool): default for the strict parameter of xfail markers when not given explicitly
(default: False)
addopts (args): extra command line options
minversion (string): minimally required pytest version
addopts
当在命令行运行测试用例的时候,通常会指定多个命令行参数,但是总不能每次运行的时候都要输入一遍,这个时候我们就可以利用addopts这个选项,将一写常用的参数聚合到一起,执行的时候不用显示指定,只需要pytest即可。
[pytest]addopts = - -l --tb=short --strict
rsxX表示pytest会显示所有测试用例被跳过-s、预计失败-x、预计失败单通过-X的原因-s,-l表示pytest显示失败用例堆栈中的局部变量的信息,--tb=short 表示简化堆栈信息,只保留文件和行数,
--strict 选项表示禁止使用未在配置文件注册过的标记
markers
将自定义的标记注册进pytest中,如果使用里--strict选项,在遇到拼写错误或者未注册的标记的时候就会报错。如果不注册不使用--strict也能用,但是当在自定义的标记出现拼写错误的时候,在默认情况下不会引起程序错误,通过注册标记的方式,将错误提前抛出,方便问题处理。
[pytest]
markers = smoke: 用于冒烟测试 get
minversion
指定pytest最小版本号
norecursedirs
pytest搜索测试用例的时候,会递归遍历所有子目录,但是随着产品的迭代有些用例已经不适合或者不必要在运行了,这时我们想告诉pytest,这些用例就不要执行了。
通过指定norecursedirs可以实现
[pytest]
norecursedirs = .* venv src *.egg dist build
其实类似.gitignore文件的功能,忽略调某些文件不进行版本控制
testpaths
norecursedirs告诉pytest那些路径不用访问,testpaths告诉pytest去哪里访问。testpaths是一系列相对于根目录的路径,用于限定测试用例的搜索范围,当使用tox来管理测试用项目时,这时的项目目录是自定义的,此时一般tox.ini和tests用例文件夹处于同级目录,就需要在tox.ini里指定测试目录
[pytest]
testpaths = tests
更改测试搜索的规则
pytest根据一定的规则搜索并运行测试,标准的搜索规则如下:
1.从一个多个目录开始查找,可以在命令行指定目录,如果未指定则以当前目录为根目录
2.在该目录或者所有子目录下递归查找测试模块
3.测试模块指的是文件名以test_.py或._test.py的文件
4.在测试模块中查找以test_开头的函数名
5.查找以Test开头的类,会筛选调有__ini__函数的类,在查找以test开头的方法
python_classes
一般情况下,pytest的测试搜索规则寻找以Test开头的测试类,而且这个类不能包含__ini__()函数,但是有时候会把测试类命名以Test结尾的类,比如*Test,这个时候就可以指定python_classes的值来解决**
[pytest]python_classes = *Test Test* *Suit
python_files
和python_classes类似,可以更改测试模块的搜索规则
[pytest]
python_files = *_test.py test_*.py
python_fuctions
修改测试方法的搜索规则
[pytest]
python_fuctions = *_test test_*
禁用xpass
设置xfail_strict = true将会使得那些被标记为@pytest.mark.xfail但实际通过党的测试用例也会显示为失败。
pytest的配置选项还有配置是否输出到Junit xml报告文件中,控制台日志输出,log文件输出配置等,大家可查阅官方文档继续学习!
- END -
原文链接:
https://www.immortalp.com/articles/2020/03/03/1583242691992.html
本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除
推荐阅读
点击阅读☞“插桩”式技术是什么,第一次听说!
点击阅读☞接口自动化测试必备框架知识,摸着良心讲,你学会了几样?
点击阅读☞怎样构建测试自动化框架?你得记住以下三个编码实践!
点击阅读☞深入探索Webdriver分层自动化测试框架的搭建 | 51做专家
点击阅读☞知名电商负责人关于自动化测试框架设计的几点思考
戳
pytest测试框架_带你深入理解自动化测试框架Pytest的配置文件!相关推荐
- web自动化如何在不同浏览器运行_从理论到工具:带你全面了解自动化测试框架...
软件行业正迈向自主.快速.高效的未来.为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价.快速实现质量是必要的,因此质量保证得到了很多关注.为了满足卓越的质量和更 ...
- 从理论到工具 - 带你全面了解自动化测试框架
什么是自动化测试框架 01 什么是框架 框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.它规定了应用的体系结构,阐明了整个设计.协作构件之间的依赖关系.责任分配和控制流程, ...
- 从理论到工具:带你全面了解自动化测试框架
软件行业正迈向自主.快速.高效的未来.为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价.快速实现质量是必要的,因此质量保证得到了很多关注.为了满足卓越的质量和更 ...
- 带你全面了解自动化测试框架—从理论到工具
软件行业正迈向自主.快速.高效的未来.为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价.快速实现质量是必要的,因此质量保证得到了很多关注.为了满足卓越的质量和更 ...
- 【测试开发】几种常见的自动化测试框架
几种常见的自动化测试框架 在软件测试领域,自动化测试框架有很多,这里主要介绍几种常用的自动化测试框架. 1.pytest pytest 是 Python 的一种单元测试框架,与 Python 自带的 ...
- uft自动化测试工具安装步骤_你需要了解的自动化测试框架知识
01 自动化测试与测试自动化 很多人会以为自动化测试和测试自动化这两个概念没有什么不同.但是从我个人看来,这两个概念有本质上的区别. 自动化测试是指使用自动化测试工具代替人工的方式来执行测试用例.使用 ...
- rola物联网框架_如何搭建一个物联网系统框架?
下面将谈到几个关键问题: 设备如何接入网络? 设备间如何通信? 物联网数据的用途? 如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢? 物联网终端软件系统架构? 物联网云平台系统架构? 1.物 ...
- 红黑树在java中的作用_带你真正理解Java数据结构中的红黑树
红黑树是平衡的二叉树,它不是一个完美的平衡二叉树,但是在动态插入过程中平衡二叉搜索树的代价相对较高,所以红黑树就此出现,下面就让爱站技术频道小编带你一起进入下文了解一下吧! 一.红黑树所处数据结构的位 ...
- 简述什么是图灵机_带你深入理解图灵机--什么是图灵机、图灵完备
原标题:带你深入理解图灵机--什么是图灵机.图灵完备 我们知道图灵机首次提出在图灵的一篇论文<论数字计算在决断难题中的应用>中提出,原论文题目为<On Computable Numb ...
最新文章
- 从SAP APO到SAP IBP:CIO如何实现最佳过渡?
- 就业丨得益于AI,这五个行业岗位需求将呈现显著增长趋势
- python判断图片模糊
- System.Web
- Linux的开源免费办公软件,开源免费Office办公套件(LibreOffice)
- centos7安装samba遇到的问题
- OAF_OAF Framework页面分析(概念)
- JDBC8.011连接数据库 3个小改动
- java 标题栏_如何更改java应用程序标题栏默认图标
- vscode,js代码片段配置
- Qt + OpenGL 教程(三):线
- 数学建模之马尔可夫链模型详解(附详细Matlab程序)
- MySQL高可用之PXC详解
- java 是否数字 正则_java使用正则判断是否是数字
- python毕业设计题目推荐汽车销售系统
- Excel为图表指定横向坐标数据
- 抓网页_面包网_javaSE
- Markdown语法整理(详细版)
- 力扣(leetcode) 1833. 雪糕的最大数量(快速排序待更新......)
- mysql 索引案例与索引策略