Pytest系列-使用自定义标记mark(6)

2023-09-12 19:43:53

简介

  • pytest 可以支持自定义标记,自定义标记可以把一个 web 项目划分为多个模块,然后指定模块名称执行

Pytest 里面自定义标记

用法:将@pytest.mark.标记名称 放到测试函数或者类上面
使用:

  • 执行时加上 -m 标记名 进行用例筛选,例如加上 -m app ,就执行标记名为app的用例。
  • 如果不运行app相关的用例,则加上 -m “not app”。
  • 需要运行多个标记则加上-m “app or web”,代码运行标记为app或者web的用例。
  • 需要运行多个标记的,则加上 -m “app and web”,代表用例需要同时包含app和web的标记。

小栗子

import pytest

@pytest.mark.weibo
def test_weibo():
    print("测试微博")

@pytest.mark.wx
def test_wx():
    print("测试微信")

@pytest.mark.xinlang
class TestStudy:
    def test_demo(self):
        print("测试新浪")

def test_noMark():
    print("没有测试标记")

cmd命令窗口输入: pytest -v -m weibo test_mark.py 执行结果为:
在这里插入图片描述
cmd命令窗口输入: pytest -v -m “not weibo” test_mark.py 执行结果为:
在这里插入图片描述

如何避免warnings

  • 通过注册标记
  • 通过框架配置文件pytest.ini

通过注册标记

conftest.py 添加如下的代码:

  • 单个注册标记
def pytest_configure(config):
    config.addinivalue_line("markers", "web:web相关用例")
  • 批量注册标记
def pytest_configure(config):
    marker_list = ["weibo", "wx" , "xinlang"] # 标签名集合
    for markers in marker_list:
        config.addinivalue_line("markers", markers)

注意:conftest.py 文件放到case目录,添加内容对应的内容

cmd命令窗口输入: pytest -v -m “not weibo” test_mark.py 执行结果为
在这里插入图片描述

通过文件pytest.ini标记

创建一个pytest.ini文件

  • 加上自定义mark,如下图
  • 注意:pytest.ini需要和运行的测试用例同一个目录,或在根目录下作用于全局
[pytest]

markers=
   weibo:this  is weibo page

cmd命令窗口输入: pytest -v -m wx test_mark.py 执行结果为
在这里插入图片描述

参考文章

更多推荐

前端Layui框架介绍

当涉及到前端UI框架时,Layui(简称layui)是一个备受欢迎的框架之一。在这篇博客中,我们将深入了解layui,包括其市场占有率、开发语言、使用场景、框架特点以及一些使用案例。1.市场占有率Layui是一款流行的前端UI框架,在开发者社区中非常受欢迎。它的市场占有率在前端开发领域相当高,许多企业和开发者选择使用l

FreeSWITCH 1.10.10 简单图形化界面11 - 简单封装一下JSSIP

FreeSWITCH1.10.10简单图形化界面11-简单封装一下JSSIP0、界面预览1、前言2、demo地址3、简单演示4、demo代码FreeSWITCH界面安装参考:https://blog.csdn.net/jia198810/article/details/1324793240、界面预览http://myf

【vue.js】路由使用与Node.js下载安装之环境配置

🎬艳艳耶✌️:个人主页🔥个人专栏:《Spring与Mybatis集成整合》《springMvc使用》⛺️生活的理想,为了不断更新自己!目录1、路由1.1什么是路由1.2案列实操1.2.1引入vue-router的js依赖1.2.2定义组件1.2.3定义路由1.2.4将路由加入路由器1.2.5将路由挂载根实例1.2.

状态管理艺术——借助Spring StateMachine驭服复杂应用逻辑

文章目录1.什么是状态2.有限状态机概述3.SpringStateMachine4.SpringStateMachine入门小案例4.1接口测试5.总结1.什么是状态在开发中,无时无刻离不开状态的一个概念,任何一条数据都有属于它的状态。比如一个电商平台,一个订单会有很多状态,比如待付款、待发货、待收货、完成订单。而这其

互联网摸鱼日报(2023-09-18)

互联网摸鱼日报(2023-09-18)36氪新闻最前线|号外电摩12.68万元起订,配16.9度一体压铸电池包本周双碳大事:CCER交易管理办法获生态环境部原则通过;明阳斥资100亿元加码光伏项目;“全路程”获2亿元D轮融资200亿,贝佐斯投出全球最大天使轮12种自由职业者管理时间的高效方法开彩票站,还是一门好生意吗:

阿曼市场最全开发攻略,看这一篇就够了

中东是一个充满外贸机遇的市场,已经成为很多外贸人重点开发的市场。阿曼的海岸南方和东方临阿拉伯海,东北方则抵阿曼湾。阿曼因为扼守着世界上最重要的石油输出通道——波斯湾和阿曼湾之间的霍尔木兹海峡,所以地理位置非常重要,商机也是很多的。作为外贸人,如何开发阿联酋市场客户呢?今天就来谈谈这个问题。文章略长,大家点赞收藏+关注,

【深度学习】 Python 和 NumPy 系列教程(十九):Matplotlib详解:2、3d绘图类型(5)3D等高线图(3D Contour Plot)

目录一、前言二、实验环境三、Matplotlib详解1、2d绘图类型2、3d绘图类型0.设置中文字体1.3D线框图(3DLinePlot)2.3D散点图(3DScatterPlot)3.3D条形图(3DBarPlot)4.3D曲面图(3DSurfacePlot)5.3D等高线图(3DContourPlot)一、前言Py

设计模式:简单工厂模式

目录代码实现总结简单工厂模式(SimpleFactoryPattern)是一种创建型设计模式,它提供了一种创建对象的最简单方式,通过一个工厂类根据传入的参数来决定创建哪种产品类的实例。在简单工厂模式中,有三个主要角色:产品(Product):定义了工厂创建的对象的接口。具体产品(ConcreteProduct):实现了

ElasticSearch(ES)简单介绍

ES简介Elasticsearch(通常简称为ES)是一个开源的分布式搜索和分析引擎,旨在处理各种类型的数据,包括结构化、半结构化和非结构化数据。它最初是为全文搜索而设计的,但随着时间的推移,它已经演变成一个功能强大的数据分析工具,用于实时搜索、日志和事件数据分析、业务智能等各种用途。以下是关于Elasticsearc

正则表达式基础

正则表达式是一种用来匹配字符串的技术,它可以通过特定的模式来搜索、替换或提取字符串中的内容。正则表达式的语法有很多不同的标记和修饰符,以下是一些常见的基础语法代码:\d:匹配任意一个数字。\w:匹配任意一个字母或数字。\s:匹配任意一个空白字符。.:匹配除换行符以外的任意一个字符。[abc]:匹配字符集合中的任意一个字

RocketMQ概论

目录前言:1.概述2.下载安装、集群搭建3.消息模型4.如何保证吞吐量4.1.消息存储4.1.1顺序读写4.1.2.异步刷盘4.1.3.零拷贝4.2.网络传输前言:RocketMQ的代码示例在安装目录下有全套详细demo,所以本文不侧重于讲API这种死的东西,而是侧重于讲解RocketMQ的特性。消息中间件无非需要关注

热文推荐