自定义标记

章节目录:

    • 一、概述
    • 二、使用自定义标记
    • 三、注册自定义标记
      • 3.1 创建文件
      • 3.2 修改文本编码格式
    • 四、执行测试
    • 五、结束语

一、概述

  • pytest 可以支持自定义标记,自定义标记可以把一个 web 项目划分多个模块,然后指定模块名称执行。
  • 譬如我可以标明哪些用例是 window 下执行的,哪些用例是 mac下执行的,在运行代码时候指定 mark 即可。

二、使用自定义标记

  • 代码示例
import pytest


# 自定义标记。
@pytest.mark.mac
def test_mac():
    print("=== mac ===")


@pytest.mark.linux
def test_linux():
    print("=== linux ===")


@pytest.mark.windows
def test_windows():
    print("=== windows ===")

  • 接下来,我们需要将上面自定义的 mac、linux、windows 标记注册到配置文件中。

三、注册自定义标记

pytest.ini 全局配置文件,是 pytest 单元测试框架的核心配置文件,它可以改变 pytest 的运行方式。

3.1 创建文件

  • 注意:pytest.ini 需要和运行的测试用例同一个目录,或在根目录下作用于全局。

  • 文件名为 pytest.ini,内容如下:

[pytest]
;注册 mark 标记
markers =
    mac : marks tests as mac
    linux: marks tests as linux
    windows : marks tests as windows

3.2 修改文本编码格式

pytest.ini 文件需要设置 GBK 格式。

  • 注意:如果编码格式不符合要求,运行 pytest 会报 UnicodeDecodeError: ‘gbk’ codec can’t decode byte 异常

  • 可以通过文本工具进行编码转换。

  • 也可以在 pycharm 中设置:

四、执行测试

可以有两种执行方式。

  • 方式一:程序执行
if __name__ == '__main__':
    # 如果传入参数没有生效,则说明:
    # 原因:程序识别到了 pytest 框架,默认 pytest 运行,要 main() 主函数运行,需要修改 python 解释器。
    # 解决:菜单栏 Run => Edit Configurations... => "+" => Python => 设置运行文件及工作目录。
    pytest.main(["-s", "-m=mac", "test_demo.py", ])
    # === mac ===
  • 方式二:命令行执行(下面都以命令行为例):
# 进入 cmd 终端。
  • 指定标记运行
# 命令。
pytest -s -m "mac" test_demo.py

# 结果。
=== mac ===
===== 1 passed, 2 deselected in 0.01s =====
  • 标记取反运行
# 命令。
pytest -s -m "not mac" test_demo.py

# 结果。
=== linux ===
=== windows ===
===== 2 passed, 1 deselected in 0.01s =====
  • 同时执行多个标记
# 命令。
pytest -s -m "mac or linux" test_demo.py

# 结果。
=== mac ===
=== linux ===
===== 2 passed, 1 deselected in 0.01s =====

五、结束语


“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/295610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基本语法

第一章 Java基本语法 1. Java程序剖析1.1 Java代码的基本格式1.2 包、import1.3 类1.4 main()方法1.5 方法1.6 标识符1.7 关键字1.8 修饰符1.9 程序块1.10 语句1.11 Java代码的注释 2. 常量与变量2.1 常量2.2 变量2.2 变量的分类2.2.1 成员变量2.2.2 局部变…

中国文化文物和旅游统计年鉴,数据含pdf、excel等格式,文本形式呈现,可预览数据

基本信息. 数据名称: 中国旅游统计年鉴 数据格式: pdf、xls不定 数据时间: 2012-2020年 数据几何类型: 文本 数据坐标系: —— 数据来源:文化和旅游部、网络公开数据 原名为《中国旅游统计年鉴》2020年后更名为《中国文化文物和旅游统计年鉴》&#xff…

实验笔记之——基于COLMAP的Instant-NGP与3D Gaussian Splatting的对比

之前博客进行了COLMAP在服务器下的测试 实验笔记之——Linux实现COLMAP-CSDN博客文章浏览阅读794次,点赞24次,收藏6次。学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客NeRF 所做的任务是 Novel View Synthesis&#xf…

史上最牛逼的fiddler抓包操作,【工具】Fiddler使用教程

eb调试工具之一, 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。换言之,你对HTTP 协议越了解,你就能越…

【DevOps-07-2】Sonarqube基本使用

一、简要说明 Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果 Sonarqube集成在Maven实现代码检测使用sonar-scanner客户端的方式 二、Sonarqube管理后台安装中文插件 1、登录Sonarqube管…

案例253:基于微信小程序的懂球短视频管理系统

文末获取源码 开发语言:Java 框架:SpringBoot JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder …

无人机发动机,预计到2025年将保持相对稳定

随着无人机技术的不断发展,无人机应用领域越来越广泛,市场需求也不断扩大。而无人机发动机是无人机的核心部件之一,市场前景也十分广阔。全球市场分析: 目前,全球无人机发动机市场主要分为四类:燃气涡轮发动…

【自学笔记】01Java基础-09Java关键字详解

介绍java(基于java11)中所有关键字,以及主要重要的关键字详解。 1 Java 11中的关键字: 1.1 类型声明与变量定义 boolean:声明布尔类型变量,只有两个可能值 true 或 false。byte:声明一个8位有…

公共用例库计划--个人版(二)主体界面设计

1、任务概述 计划内容:完成公共用例库的开发实施工作,包括需求分析、系统设计、开发、测试、打包、运行维护等工作。 1.1、 已完成: 需求分析、数据库表的设计:公共用例库计划–个人版(一) 1.2、 本次待…

vmware安装centos 7.6 操作系统

vmware安装centos 7.6 操作系统 1、下载centos 7.6 操作系统镜像文件2、安装centos 7.6操作系统3、配置centos 7.6 操作系统3.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载centos 7.6 操作系统镜像文件 这里选择 2018年10月发布的 7.6 版本 官方下载链…

33--反射

1、反射(Reflection)的概念 1.1 反射的出现背景 Java程序中,所有的对象都有两种类型:编译时类型和运行时类型,而很多时候对象的编译时类型和运行时类型不一致。 Object obj new String("hello"); obj.getClass(); 例如&#xf…

互联网广告行业发展历程

在20年的历程中,广告主与媒体方持续面对着一些问题,一些核心问题推动了行业的迭代。 互联网广告经过了20年左右的高速发展,已愈发成熟,其历程是有趣的。 对互联网广告发展的理解,网上的文章并不多,已有的…

力扣1944.队列中可以看到的人数--单调栈

思路: 由题知一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 ,也就是说,在自己右边第一个比自己高的人后面的人就肯定看不到了那么只需要找到右边第一个比自己高的人与自己之间的所有满足要求的人就行了&#xff0…

大数据毕业设计:python房源数据爬虫分析预测系统+可视化 +商品房数据(源码+讲解视频)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

15|检索增强生成:通过RAG助力鲜花运营

15|检索增强生成:通过RAG助力鲜花运营 什么是 RAG?其全称为 Retrieval-Augmented Generation,即检索增强生成,它结合了检索和生成的能力,为文本序列生成任务引入外部知识。RAG 将传统的语言生成模型与大规…

Pygame和Cocos2d

Pygame和Cocos2d都是 Python 中常用的游戏引擎,但它们的设计目标、特点和使用场景略有不同。 Pygame与Cocos2d,目前是使用人数最多的两个Python游戏库。根据某知名产品点评网站的数据显示,排名前五的Python 2D游戏库如下图所示。其中&#x…

聚观早报 |小米汽车SU7官图发布;优酷上线“AI搜片”功能

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 12月29日消息 小米汽车SU7官图发布 优酷上线“AI搜片”功能 小米汽车智能驾驶技术公布 百度投资AIGC公司必优科技…

硬链接和软链接以及inode的简述【Linux】

硬链接和软链接 inode是什么?面试题 硬链接软链接 inode是什么? 认识inode之前,先来看一下一个文件在磁盘里面是怎么存储的。   首先一个物理的圆盘形状且多层的一个磁盘会被逻辑化成为一个数组,找到一个文件在这个数组里面叫做…

JavaScript新加入的**运算符,哪里有些不一样呢?

JavaScript语法(四):新加入的**运算符,哪里有些不一样呢? 上一节课我们已经给你介绍了表达式的一些结构,其中关于赋值表达式,我们讲完了它的左边部分,而留下了它右边部分,那么,我们…

HarmonyOS4.0系统性深入开发14AbilityStage组件容器

AbilityStage组件容器 AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。 AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。 DevEco Studio默…