- 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