如何使用@pytest.mark.xxx在pytest中自定义标签,并通过-m参数过滤运行特定模块?

2026-05-07 21:550阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计538个文字,预计阅读时间需要3分钟。

如何使用@pytest.mark.xxx在pytest中自定义标签,并通过-m参数过滤运行特定模块?

在测试函数或类上添加装饰器进行特性化标记,以便在测试运行时识别并执行特定的测试用例。以下是一个示例,展示了如何标记一个测试用例为慢速测试:

pytest -m 怎么精准筛选带标签的测试

命令行用 -m 后跟表达式,不是简单字符串匹配:

  • pytest -m slow → 运行所有打了 @pytest.mark.slow 的测试
  • pytest -m "not slow" → 排除 slow,运行其余
  • pytest -m "slow and integration" → 必须同时有这两个标签
  • pytest -m "smoke or fast" → 满足其一即可
常见坑:-m smoke 会把函数名含 smoke 的测试也拉进来(比如 test_smoked_bacon),因为 pytest 默认做“名称模糊匹配”。要严格按标签过滤,得加引号:-m "smoke"
阅读全文
标签:Python

本文共计538个文字,预计阅读时间需要3分钟。

如何使用@pytest.mark.xxx在pytest中自定义标签,并通过-m参数过滤运行特定模块?

在测试函数或类上添加装饰器进行特性化标记,以便在测试运行时识别并执行特定的测试用例。以下是一个示例,展示了如何标记一个测试用例为慢速测试:

pytest -m 怎么精准筛选带标签的测试

命令行用 -m 后跟表达式,不是简单字符串匹配:

  • pytest -m slow → 运行所有打了 @pytest.mark.slow 的测试
  • pytest -m "not slow" → 排除 slow,运行其余
  • pytest -m "slow and integration" → 必须同时有这两个标签
  • pytest -m "smoke or fast" → 满足其一即可
常见坑:-m smoke 会把函数名含 smoke 的测试也拉进来(比如 test_smoked_bacon),因为 pytest 默认做“名称模糊匹配”。要严格按标签过滤,得加引号:-m "smoke"
阅读全文
标签:Python