当前位置:   article > 正文

测开面经分享(pytest装饰器)_python装饰器pytest

python装饰器pytest
  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
  • 1
  • 2
  • 3
  • 4
  • 5

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

import pytest

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

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

import pytest

@pytest.mark.xfail
def test_division():
    assert 10 / 0 == 5
  • 1
  • 2
  • 3
  • 4
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

海鲜市场

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号