pytest 给用例打标签
1.给用例添加自定义标签命令:@pytest.mark.tagname #tagname是自定义的标签名
import pytest class TestClass():
@pytest.mark.smoke
def test_one(self):
print("test_one方法执行")
assert 1==1
@pytest.mark.回归测试
def test_two(self):
print("test_two方法执行")
assert 'o' in 'love'
2.根据标签运行测试用例:pytest -m tagname
C:\Users\cale\checkapi\test_cc>pytest test_m1.py -m smoke -s
=========================================================================================================== test session starts ============================================================================================================
platform win32 -- Python 3.7.3, pytest-5.2.1, py-1.8.0, pluggy-0.13.0
rootdir: C:\Users\cale\checkapi\test_cc
plugins: allure-pytest-2.8.13, html-2.0.0, metadata-1.8.0, rerunfailures-7.0
collected 2 items / 1 deselected / 1 selected test_m1.py test_one方法执行
. ============================================================================================================= warnings summary =============================================================================================================
c:\users\ipharmacare\python37\lib\site-packages\_pytest\mark\structures.py:325
c:\users\ipharmacare\python37\lib\site-packages\_pytest\mark\structures.py:325: PytestUnknownMarkWarning: Unknown pytest.mark.smoke - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
PytestUnknownMarkWarning, c:\users\ipharmacare\python37\lib\site-packages\_pytest\mark\structures.py:325
c:\users\ipharmacare\python37\lib\site-packages\_pytest\mark\structures.py:325: PytestUnknownMarkWarning: Unknown pytest.mark.回归测试 - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
PytestUnknownMarkWarning, -- Docs: https://docs.pytest.org/en/latest/warnings.html
=============================================================================================== 1 passed, 1 deselected, 2 warnings in 0.22s ================================================================================================
3.因为自定义的标签没有注册,所以在运行时会出现警告的信息,pytest注册标签有两种方法
(1):注册pytest.ini文件(在当前目录创建pytest.ini文件)
[pytest]
markers=
smoke:冒烟测试 #冒号后面是标签的描述,可不填
two
回归测试 #如果标签是中文,编码需对应进行修改
再看下运行结果:警示信息没有了
C:\Users\cale\checkapi\test_cc>pytest test_m1.py -s
========================================================================= test session starts =========================================================================
platform win32 -- Python 3.7.3, pytest-5.2.1, py-1.8.0, pluggy-0.13.0
rootdir: C:\Users\cale\checkapi\test_cc, inifile: pytest.ini
plugins: allure-pytest-2.8.13, html-2.0.0, metadata-1.8.0, rerunfailures-7.0
collected 2 items test_m1.py test_one方法执行
.test_two方法执行
. ========================================================================== 2 passed in 0.13s ==========================================================================
(2):写钩子到conftest.py(在命令行当前目录下创建conftest.py)
def pytest_configure(config):
config.addinivalue_line("markers",'smoke')
config.addinivalue_line("markers", '回归测试')
运行结果如下
C:\Users\cale\checkapi\test_cc>pytest test_m1.py -s
=========================================================================================================== test session starts ============================================================================================================
platform win32 -- Python 3.7.3, pytest-5.2.1, py-1.8.0, pluggy-0.13.0
rootdir: C:\Users\cale\checkapi\test_cc
plugins: allure-pytest-2.8.13, html-2.0.0, metadata-1.8.0, rerunfailures-7.0
collected 2 items test_m1.py test_one方法执行
.test_two方法执行
. ============================================================================================================ 2 passed in 0.09s =============================================================================================================
4.在一个测试用例上打多个标签
import pytest @pytest.mark.smoke
@pytest.mark.回归测试
def test_one(self):
print("test_one方法执行")
assert 1==1
5.给测试类打标签
import pytest
#方式一
@pytest.mark.smoke
class TestClass():
def test_one(self):
print("test_one方法执行")
assert 1==1
#方式二
class TestClass():
pytestmark=[pytest.mark.smoke,pytest.mark.回归测试] #多个标签存在列表里面
def test_one(self):
print("test_one方法执行")
assert 1==1
pytest 给用例打标签的更多相关文章
- Pytest执行用例报Hint: make sure your test modules/packages have valid Python names.
近日,使用Pytest+Appium 实现APP端UI自动化,遇到Pytest收集用例失败的情况. 报错信息如下: test_room.py:None (test_room.py) ImportErr ...
- pytest执行用例时从conftest.py抛出ModuleNotFoundError:No module named 'XXX'异常的解决办法
一.问题描述 在项目根目录下执行整个测试用例,直接从conftest.py模块中抛出了ModuleNotFoundError:No module named 'TestDatas'的异常: 二.解决方 ...
- pytest执行用例:明明只写了5个测试用例, 怎么收集到33个!?
pytest收集测试用例的顺序: 同一个项目中搜索所有以test_开头的测试文件.test_开头的测试类.test_开头的测试函数 执行测试用例的顺序: 是按照先数据(0~9)>再字母(a~z) ...
- pytest 失败用例重试
https://www.cnblogs.com/jinzhuduoduo/articles/7017405.html http://www.lxway.com/445949491.htm https: ...
- pytest系列(二):筛选用例新姿势,mark 一下,你就知道。
pytest系列(一)中给大家介绍了pytest的特性,以及它的编写用例的简单至极. 那么在实际工作当中呢,我们要写的自动化用例会比较多,不会都放在一个py文件里. 如下图所示,我们编写的用例存放在不 ...
- pytest文档32-allure描述用例详细讲解
前言 pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结. allure报告可以很多详细的信息描述测试用例,包括epic.feature.story.title.iss ...
- pytest--mark基本使用(主要通过pytest.ini文件注册标签名,对用例进行标记分组)
1.pytest中的mark介绍 mark主要用于在测试用例/测试类中给用例打标记(只能使用已注册的标记 名),实现测试分组功能,并能和其它插件配合设置测试方法执行顺序等.如下 图,现在需要只执行红色 ...
- pytest之收集用例规则与运行指定用例
前言 上篇文章相信大家已经了解了pytest在cmd下结合各种命令行参数如何运行测试用例,并输出我们想要看到的信息.那么今天会讲解一下pytest是如何收集我们写好的用例?我们又有哪些方式来运行单个用 ...
- Pytest权威教程26-示例和自定义技巧
目录 示例和自定义技巧 返回: Pytest权威教程 示例和自定义技巧 这是一个(不断增长的)示例列表.如果你需要更多示例或有疑问,请联系我们.另请参阅包含许多示例代码段的 综合文档.此外,stack ...
随机推荐
- 推荐算法-聚类-K-MEANS
对于大型的推荐系统,直接上协同过滤或者矩阵分解的话可能存在计算复杂度过高的问题,这个时候可以考虑用聚类做处理,其实聚类本身在机器学习中也常用,属于是非监督学习的应用,我们有的只是一组组数据,最终我们要 ...
- java之Map和Collection
java中保存对象的容器可分为两类: 1.Map.Map是以键值对的形式来保存一组对象,可以通过键来查找值. 2.Collection.用来保存独立对象的序列.Collection又可分为三种类型: ...
- 【实用小技巧】Access denied for user 'root'@'localhost' 报错解决
到mysql安装目录修改my.ini文件,在文件末尾追加一句 skip-grant-tables 然后重启mysql服务即可
- 【微信小程序】--小程序中循环遍历(包括js中遍历和wxml中的遍历)
文章为博主原创,纯属个人见解,如有错误欢迎指出. 如需转载,请注明出处. 在js中遍历 for (var index in res.data.infos) { res.data.infos[index ...
- 面试遇到的坑JS深拷贝和浅拷贝
首先要搞明白深拷贝和钱拷贝的区别要先搞明白 栈和堆的区别 一.栈 栈存储基础数据类型,如: String.Number.Boolean.Null.Underined,这些简单的基础数据类型能够直接存储 ...
- 【大白话 mysql】mysql 事务与日志原理
在后端面试中,mysql是比不可少的一环,其中对事务和日志的考察更是"重灾区", 大部分同学可能都知道mysql通过redolog.binlog和undolog保证了sql的事务性 ...
- 【MySQL】MySQL-front等客户端连接MySQL_8.0等失败的解决办法
ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localho ...
- Linux单用户模式(修改密码、运行级别)方法详解
很多新手当面对"忘记 root 账户密码导致无法登陆系统"这个问题时,直接选择重新系统.其实大可不必,我只需要进入 emergency mode(单用户模式)更新 root 账户的 ...
- ipmitool -I lanplus -H IPADDR -U USERNAME -P PASSWORD power reset
IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标 ...
- openstack宿主机故障,虚拟实例恢复
前言: 因为机房服务器运行不稳定的原因导致计算节点挂掉,然后上面的Centos7虚拟机在迁移之后开机报错.这个解决方法同样适用于其它操作系统的虚拟机.基于镜像创建的虚拟机实例. I/O error, ...