每日面经分享(pytest装饰器)

发布于:2024-04-01 ⋅ 阅读:(61) ⋅ 点赞:(0)
  1. pytest装饰器
    a. @pytest.mark.parametrize:这个装饰器用于标记测试函数,并为其提供多组参数进行参数化测试。可以使用元组、列表、字典等形式来指定参数组合。
import pytest

@pytest.mark.parametrize("num1, num2, expected", [(2, 2, 4), (5, 3, 8)])
def test_addition(num1, num2, expected):
    assert num1 + num2 == expected

b. @pytest.fixture:这个装饰器用于定义夹具函数,可以在测试函数执行前后进行准备和清理工作。测试函数可以通过参数来使用夹具。

import pytest

@pytest.fixture
def setup_data():
    # 准备测试数据
    data = [1, 2, 3, 4, 5]
    yield data  # 返回数据
    # 清理工作

def test_data_length(setup_data):
    assert len(setup_data) == 5

c. @pytest.mark.skip:这个装饰器用于标记测试函数,跳过该测试函数的执行。可以用于临时禁用某些测试,或者在某些条件下跳过测试。

import pytest

@pytest.mark.skip(reason="Not implemented yet")
def test_functionality():
    # 测试函数的实现
    assert 1 + 1 == 2

d. @pytest.mark.xfail:这个装饰器用于标记一个预期失败的测试。通常在已知某些条件下测试会失败,但仍然希望执行它们并跟踪失败情况时使用。

import pytest

@pytest.mark.xfail
def test_division():
    assert 10 / 0 == 5

e. @pytest.mark.skipif:这个装饰器用于在满足指定条件时跳过测试。可以使用它来根据环境、配置或其他条件来动态决定是否跳过测试。

import pytest

@pytest.mark.skipif(sys.version_info < (3, 7), reason="Requires Python 3.7 or higher")
def test_functionality():
    # 测试函数的实现
    assert 1 + 1 == 2

互联网大厂测开经历,目前担任测试开发负责人,每天分享互联网面经,如果你有测试相关的问题,欢迎咨询,海鲜市场【简历优化】、【就业指导】、【模拟/辅导面试】,已辅导20位以上同学拿到心仪offer

海鲜市场

本文含有隐藏内容,请 开通VIP 后查看