热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【pytest系列】mark标记功能详细介绍

原标题:【pytest系列】-mark标记功能详细介绍如果想从头学起pytest,可以去看看这个系列

原标题:【pytest系列】- mark标记功能详细介绍

如果想从头学起pytest,可以去看看这个系列的文章!

https://www.cnblogs.com/miki-peng/category/1960108.html

mark标记

​ 在实际工作中,我们要写的自动化用例文章来源地址24425.html会比较多,也不会都放在一个py文件中,如果有几十个py文件,上百个方法,而我们只想运行当中部分的用例时怎么办?

​ pytest提供了一个非常好用的mark功能,可以给测试用例打上各种各样的标签,运行用例时可以指定运行某个标签。mark功能作用就是灵活的管理和运行测试用例。

​ 标签既可以打文章来源站点https://www.yii666.com/到方法上,也可以打到类上,标记的两种方式:


  • ? 直接标记类或方法或函数:@pytest.mark.标签名

  • ? 类属性:pytestmark = [pytest.mark.标签名, pytest.mark.标签名],需要注意的是属性名称是固定的

import pytest
@pytest.mark.beta # 可以给类打标签
class TestLogin: # 标记类
@pytest.mark.qc
@pytest.mark.beta # 也可以多个标签
def test_login(self): # 标记方法
pass
@pytest.mark.smoke # 单个标签
def test_register(): # 标记函数
pass
class TestClass:
# 加一个 pytestmark的类属性
pytestmark = [pytest.mark.qc, pytest.mark.beta] # 标签存放在一个列表
pytest.main(文章来源地址24425.html)

注册标签名

​ 我们要想运行已经打好标记的函数,还需要对标签名进行注册,告诉pytest有哪些标签,如果不进行注册运行时(pytest的高级版本)可能会报警告让你进行注册。

​ 我们只需要在项目根目录下创建一个pytest.ini文件,注意文件名是不可修改的,否则pytest会找不到。内容格式如下:

# pytest.ini
# 只能修改=右边的值
[pytest]
python_files = demo_*.py # 模块名以demo_开头
python_functiOns= demo_* # 方法名以demo_开头
python_classes = Demo* # 类名名以Demo开头
# 注册标签
markerwww.yii666.coms =
qc
beta
smoke

运行指定的标签

通过命令行执行

​ 单个标签:pytest -m "标签名" (-m意思是执行标签mark),不想执行某个标签可以用not来取反,即pytest -m "not 标签名"

​ 多个标签:可以加上判断,pytest -m "qc and beta" 或者 pytest -m "qc or beta" 效果是一样的

注意:标签名一定要加双引号,单引号是会报错的。

通过代码执行

​ 这里普及一下,main()方法是可以接收不定长参数的,因此可以把要执行的命令放在一个列表中

if __name__ == '__main__':
pytest.main(['-m qc and beta', '-s']) # 标签名不需要加引号

​ 关于pytest的指令,可以通过控制台执行pytest --help查看,上面举例中-s命令是指打印更加详细的信息,如果程序运行过程当中的print()信息打印不出来,可以加上-s可选参数,它是-- capture=no的缩写。

skip跳过标记

​ 在维护测试用例的过程中,可能在一个阶段某些用例已经不需要了,或者在指定条件下是不需要运行的,那么我们就可以通过mark.skip跳过这些函数或者类,两种跳过方式:


  • ?直接跳过: @pytest.mark.skip(reason = “原因”) www.yii666.com这里原因是可选参数

  • ?条件跳过,即满足某个条件才跳过:@pytest.mark.skipif(a == 1, reason = “原因”)

db_host = 'localhost'
@pytest.mark.skip("和现在的需求不符合") # 不满足当下了,或别人编写的暂时不能删的
def test_yuz(self):
pass
@pytest.mark.skipif(db_host == 'localhost', reason='只测试线上环境,不测试本地环境')
def test_develop_env(self):
pass

来源于:【pytest系列】- mark标记功能详细介绍


推荐阅读
  • node.js 全局变量说明
    原标题:node.js全局变量说明文章目录全局对象 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 原标题:Python中numpy.power()函数介绍Python中numpy.power()函数介绍power(x,y)函数, ... [详细]
  • 直击热门考点——结构体内存对齐
    原标题:直击热门考点——结构体内存对齐文章目录前言一、引例 ... [详细]
  • 补丁是一个文本文件,其内容类似于gitdiff,但与代码一样,它也有关于提交的元数据;例如提交ID,日期,提交消息等。我们可以从提交创建一个补丁,而其他人可以将它们 ... [详细]
  • 20210921c++ 继承,虚继承(内存结构)
    原标题:2021-09-21c++继承,虚继承(内存结构)普通的公有继承 ... [详细]
  • 原标题:(C语言实现)页面置换——先进先出算法(FIFO)一、设计目的:加深对请求页式存储管理实现原理的理解,掌握页面置换算法中的 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • C++中的三角函数计算及其应用
    本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
  • 智商狂飙,问了ChatGPT几个数据库问题后,我的眼镜掉了
    原标题:智商狂飙,问了ChatGPT几个数据库问题后,我的眼镜掉了最近,ChatGPT火爆全网,介绍其产品、公司、作者、技术和应用等方面信息,占据着整个互联网,似乎不谈GPT好像 ... [详细]
  • MySQL 的 NULL 值是怎么存储的?
    MySQL 的 NULL 值是怎么存储的? ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
author-avatar
手机用户2502939421
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有