• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

pytest学习——自定义标签

武飞扬头像
xingditu
帮助1

前言

通过pytest的mark系列装饰器,我们可以对测试函数添加一些描述信息。比如,我们需要对测试的优先级进行设置,p0表示最高优先级,p1次之,p2,p3更次之。


1.创建自定义标签

使用方法如下:

import pytest

class TestLogin:
	
	@pytest.mark.p0
	def login_success(self):
		print("登录成功")
	
	@pytest.mark.p1
	def login_fail(self):
		print("登录失败")

我们运行测试 pytest -m p0
结果如下:
PytestUnknownMarkWarning: Unknown pytest.mark.p0 - 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
==================================================== 2 deselected, 2 warnings in 0.06 seconds ====================================================
可以看到有1个警告,提示我们p0是一个未知的标记,需要我们注册一下

2.注册自定义标签

在项目的根目录创建一个pytest.ini文件这样pytest就可以识别了
内容如下:

[pytest]
markers =
    p0: 优先级第一
    p1: 优先级第二

    UI: ui自动化
    api: 接口自动化

再次运行测试 pytest -m p0发现警告消失

3.分组和筛选

我们想要的可能不仅仅是标记测试,添加描述信息,更想根据这些信息来对测试进行分组和筛选。比如测试模块应用了如下标签。`

import pytest

class TestLogin:

    @pytest.mark.p0
    @pytest.mark.API
    def login_success(self):
        print("登录成功")

    @pytest.mark.p1
    @pytest.mark.UI
    def login_fail(self):
        print("登录失败")

如果我们只想执行p1的测试用例,可以很容易的做到
pytest -m p1
执行所有p1和p0的测试
pytest -m “p0 and p1”
执行所有优先级不是p1的测试
pytest -m “not p1”
注意:标记是区分大小写的,为了避免混淆,我们可以要求pytest不接受未注册的标记

[pytest]
addopts = --strict-markers
markers =
    p0: 优先级第一
    p1: 优先级第二

    UI: ui自动化
    api: 接口自动化

经过这样的设置,当pytest看到未注册的标记时,不会抛出警告,而是抛出错误。这样更显示的提醒我们,避免潜在问题

4.查看mark标签

可以通过pytest --markers命令查看所有的mark标签,有内置的makers可以使用,也可以自己定义
显示如下:
@pytest.mark.p0: 优先级第一
@pytest.mark.p1: 优先级第二
@pytest.mark.UI: ui
@pytest.mark.API: 接口
@pytest.mark.skip(reason=None): skip the given test function with an optional reason. Example: skip(reason=“no way of currently testing this”) skips the test.

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcfjif
系列文章
更多 icon
同类精品
更多 icon
继续加载