pytest.mark简介

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

  1. 条件执行:你可以根据标记来决定哪些测试应该被执行。
  2. 分组:可以将测试分为不同的组,比如按功能、重要性或速度分组。
  3. 参数化 :可以使用 pytest.mark.parametrize 装饰器来为测试函数提供多个参数集。
  4. 跳过测试 :使用 pytest.mark.skippytest.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 提供了强大的测试组织和管理能力,使得测试更加灵活和可控。

相关推荐
姚青&1 天前
Pytest 测试用例编写
测试用例·pytest
Warren981 天前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
serve the people2 天前
python环境搭建 (七) pytest、pytest-asyncio、pytest-cov 试生态的核心组合
开发语言·python·pytest
真智AI3 天前
用 LLM 辅助生成可跑的 Python 单元测试:pytest + coverage 覆盖率报告(含运行指令与排坑)
python·单元测试·pytest
Warren983 天前
Allure 常用装饰器:实战用法 + 最佳实践(接口自动化)
运维·服务器·git·python·单元测试·自动化·pytest
Warren984 天前
Pytest Fixture 到底该用 return 还是 yield?
数据库·oracle·面试·职场和发展·单元测试·pytest·pyqt
Warren985 天前
Pytest Fixture 作用域详解:Function、Class、Module、Session 怎么选
面试·职场和发展·单元测试·pytest·pip·模块测试·jira
我的xiaodoujiao6 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
我的xiaodoujiao6 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 45--生成项目需要的requirements.txt依赖文件
python·学习·测试工具·pytest
月明长歌6 天前
全栈测试修炼指南:从接口策略到 Python+Pytest+Allure 企业级架构
python·架构·pytest