就是说标记一些用例或者那些函数可以执行或者不执行,这种情况下就是我们有一些测试的这些项目还没有完成,我们可以先空下来。

一、pytest查找策略

默认情况下,pytest会递归查找当前目录下所有以test开始或结尾的Python脚本。注:(递归的意思就是这个文件夹下边还可能有子文件夹,他可以一层一层地递归查找)那么当前目录下边所有以test开头或者结尾的Python脚本,才会递归地来查找并且执行文件里边所有以test的开头或者结尾的函数或者方法

import pytest

class TestCase02(object):

    def test01(self):
        print('test01')
        # self.add()          #也可以调用add()函数

    def add(self):
        print('add')    #不需要被执行的,那么命名的时候不以test开头

    def test02(self):
        print('test02')

if __name__ == '__main__':
    pytest.main(['test02.py'])

二、标记测试函数

由于某种原因(如test_func2的功能尚未开发完成),我们只想执行指定的测试函数。在pytest中有几种方式可以解决:

第一种,显示指定函数名,通过::标记

test_no_mark.py::test_func1

demo01:

import pytest

def test01():
    print('test01')

def test02():
    print('test02')

然后再控制台上面Terminal上面输入 pytest test03.py::test01

第二种,使用模糊匹配,使用 -k 选项标识。

pytest -k func1 test_no_mark.py

demo02:

import pytest

def test_add():
    print('test01')

def test02_sub2():
    print('test02')

然后再控制台上面Terminal上面输入pytest -k add test03.py

第三种,使用pytest.mark在函数上进行标记(给用例打标签)

注册标签名,通过 .ini配置文件,格式如下:

pytest标记:查看测试策略、标记测试函数_python脚本

 

 

import pytest

@pytest.mark.do
def test01():
    print('test01')

@pytest.mark.undo
def test02():
    print('test02')

然后在控制台Terminal执行pytest -m do test04.py