pytest.mark简介

pytest.mark 是 pytest 框架中的一个功能,它允许你标记测试函数或类,这样你就可以在运行测试时选择性地执行它们。使用标记,你可以实现以下功能:

  1. 条件执行:你可以根据标记来决定哪些测试应该被执行。
  2. 分组:可以将测试分为不同的组,比如按功能、重要性或速度分组。
  3. 参数化:可以使用 pytest.mark.parametrize 装饰器来为测试函数提供多个参数集。
  4. 跳过测试:使用 pytest.mark.skip 或 pytest.mark.skipif 可以跳过某些测试。
  5. 预计失败:使用 pytest.mark.xfail 可以标记预计会失败的测试。

以下是一些 pytest.mark 的常见用法:

跳过测试

import pytest

@pytest.mark.skip(reason="not implemented yet")
def test_feature_not_implemented():
    ...

条件性跳过

import pytest

@pytest.mark.skipif(sys.platform == 'win32', reason="does not run on Windows")
def test_linux_only_feature():
    ...

预计失败

python

import pytest

@pytest.mark.xfail(reason="bug 123")
def test_feature_with_bug():
    ...

参数化测试

import pytest

@pytest.mark.parametrize("input,expected", [("3+5", 8), ("2+4", 6)])
def test_add(input, expected):
    assert eval(input) == expected

选择性执行

假设你有一个标记 smoke,你可以通过命令行运行所有带有这个标记的测试:

pytest -m smoke

标记测试函数:

@pytest.mark.smoke
def test_important_feature():
    ...

通过这种方式,pytest.mark 提供了强大的测试组织和管理能力,使得测试更加灵活和可控。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值