Believe in yourself.

Pytest学习笔记(四) skip跳过测试用例

在执行测试用例时,有些用例可能不需要执行,这时可以用skip来跳过用例:

1、skip 始终跳过该测试用例

如下三个用例,标记用例2不执行

import pytest


def test_001():
    assert 1 == 1


@pytest.mark.skip(reason="此条用例暂不执行")
def test_002():
    assert 1 == 1


def test_003():
    assert 1 == 1

执行 pytest -vrs,结果如下:

 

 

 

 如上,使用skip装饰器标记是跳过测试用例的最简单方法。

也可以在测试执行或setup期间,通过调用pytest.skip(reason)函数强制跳过该用例:

def test_function():
    if not valid_config():
        pytest.skip("不支持该配置")

还可以在模块级别跳过整个模块:pytest.skip(reason,allow_module_level=True)

import sys
import pytest

if not sys.platform.startswith("win"):
    pytest.skip("跳过只支持Windows平台的用例",allow_module_level=True)

2、skipif  指定条件下跳过测试用例

满足指定条件时则跳过用例的执行,如下当Python版本小于3.9时跳过测试用例

import pytest
import sys

@pytest.mark.skipif(sys.version_info < (3, 9), reason="需要Python3.9版本以上")
def test_002():
    assert 1 == 1

注意:skipif方法必须指定reason,否则会报错

我们还可以定义一个变量,根据变量返回为True或False来判断是否跳过用例,如下:

import pytest
import sys

minversion = pytest.mark.skipif(
    sys.version_info < (3, 9), reason="需要Python3.9版本以上"
)


@minversion
def test_002():
    assert 1 == 1

在另一个文件中还可以导入这个变量来重复引用

from api.test_case import minversion


@minversion
def test_003():
    assert 5 == 5

跳过整个文件的所有测试用例

import pytest
import sys

# 当前文件下的测试用例需要满足这个条件才能被执行
pytestmark = pytest.mark.skipif(sys.version_info < (3, 9), reason="需要Python3.9版本以上")


def test_001():
    assert 1 == 1


def test_002():
    assert 8 == 8

 

posted @ 2020-12-09 16:13  eastonliu  阅读(1225)  评论(0编辑  收藏  举报