自定义标记

章节目录:

    • 一、概述
    • 二、使用自定义标记
    • 三、注册自定义标记
      • 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 maclinux: marks tests as linuxwindows : 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 =====

五、结束语


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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创意与技术的结晶:AI魔法绘图与中文描述的完美结合

在人类文明的长河中,创意与技术一直是推动发展的重要动力。随着科技的日新月异,人工智能(AI)在创意领域的应用逐渐崭露头角,而AI魔法绘图与中文描述的结合,更是将这一趋势推向了新的高度。AI魔法绘图是一种…

一文上手ThreadLocal使用和原理

什么是ThreadLocal?它有什么用? 当我们某个类需要被多线程共享的时候,我们就可以使用ThreadLocal关键字,ThreadLocal可以为每个线程创建这个变量的副本并存到每个线程的存储空间中(关于这个存储空间后文会展开讲述),从而确保共享…

citeSpace保姆级安装使用教程

citeSpace保姆级安装使用教程 文章目录 citeSpace保姆级安装使用教程CiteSpace功能与参数区安装使用知网数据导出citespace数据导入结果 设置操作隐藏节点 CiteSpace功能与参数区 安装 citeSpace安装教程 citespace下载 网址:https://citespace.podia.com/ 安装之…

leetcode:2784. 检查数组是否是好的(python3解法)

难度:简单 给你一个整数数组 nums ,如果它是数组 base[n] 的一个排列,我们称它是个 好 数组。 base[n] [1, 2, ..., n - 1, n, n] (换句话说,它是一个长度为 n 1 且包含 1 到 n - 1 恰好各一次,包含 n 两…

【Linux】Linux Page Cache页面缓存的原理

Page cache(页面缓存)是计算机操作系统中的一种机制,用于将频繁访问的数据从磁盘存储到内存中,以便更快地访问。当程序从磁盘请求数据时,操作系统会检查该数据是否已经存在于页面缓存中。如果存在,数据可以…

基于web3.js和ganache实现智能合约调用

目的:智能合约发布到本地以太坊模拟软件ganache并完成交互 准备工作: web3.jsganache模拟软件 ganache参数配置 从ganache获取一个url,和一个账号的地址, url直接使用图中的rpc server位置的数据即可 账号address从下列0x开头…

filecoin通过filutils 区块浏览器获取历史收益数据

filecoin 历史收益数据 每天每T平均收益 导出历史每日收益为文档 filutils 区块浏览器 导出历史每日收益为文档 #!/bin/bashfor i in {1..10} doecho $iresult$(curl --location --request POST https://api.filutils.com/api/v2/powerreward \--header User-Agent: Apifox/1.…

基于萤火虫算法优化的Elman神经网络数据预测 - 附代码

基于萤火虫算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于萤火虫算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于萤火虫优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#x…

遥感影像-语义分割数据集:2021年昇腾杯初赛数据集详细介绍及训练样本处理流程

原始数据集详情 简介:细粒度语义分割赛道依据现有的遥感地物分类要求, 结合现有的地物分类实际需求,参照地理国情监测、 “三调”等既有地物分类标准,依据遥感地物“所见即所得”原则, 设计地物要素分类体系&#xff…

算法每日一题:从列表中移除节点 | 链表与栈

大家好,我是星恒 今天的题目是一道比较经典的链表题目,他涉及到链表的遍历,链表的创建,处理链表的常用方法,以及常用方法中使用栈的一系列常用技巧 这道题本身不难,但是如果学会处理它,绝对会收…

IDEA中自动导包及快捷键

导包设置及快捷键 设置:Setting->Editor->General->Auto import快捷键 设置:Setting->Editor->General->Auto import java区域有两个关键选项 Add unambiguous imports on the fly 快速添加明确的导包 IDEA将在我们书写代码的时候…

Django 7 实现Web便签

一、效果图 二、会用到的知识 目录结构与URL路由注册request与response对象模板基础与模板继承ORM查询后台管理 三、实现步骤 1. terminal 输入 django-admin startapp the_10回车 2. 注册, 在 tutorial子文件夹settings.py INSTALLED_APPS 中括号添加 "the…