Pytest系列(6)- 标记mark的使用

mark的作用

  • 可以把一个项目划分为多个模块,然后通过指定模块名称执行对应的用例

mark用法

@pytest.mark.xxx标记用例即可

🐋 ATTENTION:

  • 标记名最好有意义
  • 同一个测试类/方法可以同时拥有多个标记

话不多说,我们直接上代码👇👇👇

# -*- coding: utf-8 -*-
# @Author : Mooii
# @Time : 2021/11/15
# @File : TestMark.py
# @Description :标记mark的使用
# test_login_logout.py

import pytest

@pytest.mark.login
class TestLogin:
    """登陆测试类"""
    @pytest.mark.smoke
    @pytest.mark.success
    def test_login_sucess(self):
        """登陆成功"""
        print("登录成功")

    @pytest.mark.failed
    def test_login_failed(self):
        """登陆失败"""
        print("登录失败")

@pytest.mark.logout
class TestLogout:
    """登出测试类"""
    @pytest.mark.smoke
    @pytest.mark.success
    def test_logout_sucess(self):
        """登出成功"""
        print("登出成功")

    @pytest.mark.failed
    def test_logout_failed(self):
        """登出失败"""
        print("登出失败")

运行方式

cmd敲命令

# 指定login的用例
pytest -s -m login TestMark.py

运行结果如下:

# 指定login但login不成功的用例
pytest -s -m "login and not success" TestMark.py

运行结果如下:

🐋 ATTENTION:

  • 使用-m指定标记名称
  • -m参数支持and、or、not等表达式
  • 在组合条件的时候,需要使用双引号" "

一些问题

warning信息:PytestUnknownMarkWarning: Unknown pytest.mark.logout - is this a typo?

消除方法:在pytest配置文件中注册mark标记名称即可

[pytest]
markers = 
    login   : 'marks tests as login'
    logout  : 'marks tests as logout'
    success : 'marks tests as success'
    failed  : 'marks tests as failed'
posted @ 2021-11-15 22:52  莫伊101  阅读(113)  评论(0)    收藏  举报