Pytest mark使用实例及原理解析


Posted in Python onFebruary 22, 2020

这篇文章主要介绍了Pytest mark使用实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用方法:

1、注册标签名

2、在测试用例/测试类前面加上:@pytest.mark.标签名

打标记范围:测试用例、测试类、模块文件

注册方式:

1、单个标签:

在conftest.py添加如下代码:

def pytest_configure(config):
  # demo是标签名
  config.addinivalue_line("markers", "demo:示例运行")

2、多个标签:

在conftest.py添加如下代码:

def pytest_configure(config):
  marker_list = ["testdemo", "demo", "smoke"] # 标签名集合
  for markers in marker_list:
    config.addinivalue_line("markers", markers)

3、添加pytest.ini 配置文件(在你项目的任意一个文件下,新建一个file,文件命名为pytest.ini)

[pytest]
markers=
  smoke:this is a smoke tag
  demo:demo
  testdemo:testdemo

使用方法:

import pytest


@pytest.mark.testdemo
def test_demo01():
  print("函数级别的test_demo01")


@pytest.mark.smoke
def test_demo02():
  print("函数级别的test_demo02")


@pytest.mark.demo
class TestDemo:
  def test_demo01(self):
    print("test_demo01")

  def test_demo02(self):
    print("test_demo02")

运行方式:

1、命令行模式

通过标记表达式执行
pytest -m demo
这条命令会执行被装饰器@pytest.mark.demo装饰的所有测试用例

生成html报告:
pytest -m demo --html=Report/report.html

生成xml报告:
pytest -m demo --junitxml=Report/report.xml

运行指定模块:
pytest -m demo --html=Report/report.html TestCases/test_pytest.py

运行指定测试目录
pytest -m demo --html=Report/report.html TestCases/

通过节点id来运行:
pytest TestCases/test_pytest.py::TestDemo::test_demo01

通过关键字表达式过滤执行
pytest -k "MyClass and not method"
这条命令会匹配文件名、类名、方法名匹配表达式的用例

获取用例执行性能数据
获取最慢的10个用例的执行耗时
pytest --durations=10

2、新建run.py文件运行,代码如下:

pytest.main(["-m","demo","--html=Report/report.html"])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
深入解析Python中的线程同步方法
Jun 14 Python
python素数筛选法浅析
Mar 19 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
python matlibplot绘制多条曲线图
Feb 19 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
python 函数中的内置函数及用法详解
Jul 02 Python
python join方法使用详解
Jul 30 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
Python基础之元组与文件知识总结
May 19 Python
python pygame入门教程
Jun 01 Python
python如何通过闭包实现计算器的功能
Feb 22 #Python
postman和python mock测试过程图解
Feb 22 #Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 #Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 #Python
python实现从尾到头打印单链表操作示例
Feb 22 #Python
python实现滑雪游戏
Feb 22 #Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 #Python
You might like
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php miniBB中文乱码问题解决方法
2008/11/25 PHP
php修改时间格式的代码
2011/05/29 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
JS作用域链详解
2017/06/26 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
pyramid配置session的方法教程
2013/11/27 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python IDLE清空窗口的实例
2018/06/25 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
软件测试英文面试题
2012/10/14 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
财务会计专业求职信范文
2013/12/31 职场文书
个人维稳承诺书
2015/05/04 职场文书
走进科学观后感
2015/06/18 职场文书