Pytest系列(8) - 使用自定义标记mark

如果你还想从头学起Pytest,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1690628.html

 

前言

  • pytest 可以支持自定义标记,自定义标记可以把一个 web 项目划分多个模块,然后指定模块名称执行
  • 譬如我可以标明哪些用例是window下执行的,哪些用例是mac下执行的,在运行代码时候指定mark即可
 

上代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
__title__  = 
__Time__   = 2020/4/9 19:32
__Author__ = 小菠萝测试笔记
__Blog__   = https://www.cnblogs.com/poloyy/
"""
import pytest


@pytest.mark.weibo
def test_weibo():
    print("测试微博")


@pytest.mark.toutiao
def test_toutiao():
    print("测试头条")


@pytest.mark.toutiao
def test_toutiao1():
    print("再次测试头条")


@pytest.mark.xinlang
class TestClass:
    def test_method(self):
        print("测试新浪")


def testnoMark():
    print("没有标记测试")

 

cmd敲运行命令

pytest -s -m weibo 08_mark.py

 

执行结果

Pytest系列(8) - 使用自定义标记mark

 

如何避免warnings

  • 创建一个pytest.ini文件(后续详解)
  • 加上自定义mark,如下图
  • 注意:pytest.ini需要和运行的测试用例同一个目录,或在根目录下作用于全局

Pytest系列(8) - 使用自定义标记mark

 

如果不想标记weibo的用例,我们直接取反即可

pytest -s -m "not weibo" 08_mark.py

Pytest系列(8) - 使用自定义标记mark

 

如果想执行多个自定义标记的用例

pytest -s -m "toutiao or weibo" 08_mark.py

Pytest系列(8) - 使用自定义标记mark

 

上一篇:@pytest.mark.parametrize 参数化总结


下一篇:pytest文档12-skip跳过用例