You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为tests目录下所有测试文件批量设置pytest标记?

可行解决方案

你原来写的pytest.mark.mymark只是创建了标记对象,但没有将其绑定到任何测试用例上,所以不会生效。以下是两种可行的实现方式:

方法一:批量添加标记的基础实现

在tests/__init__.py中写入以下代码,利用pytest的pytest_collection_modifyitems钩子,给所有收集到的测试用例统一添加标记:

import pytest

def pytest_collection_modifyitems(config, items):
    # 遍历所有测试用例,添加mymark标记
    for item in items:
        item.add_marker(pytest.mark.mymark)

方法二:带标记注册的完整实现(推荐)

如果想避免pytest运行时出现"未知标记"的警告,可以先注册标记,再批量添加:

import pytest

def pytest_configure(config):
    # 注册自定义标记,描述可自行修改
    config.addinivalue_line(
        "markers", "mymark: 用于标记tests目录下的所有测试用例"
    )

def pytest_collection_modifyitems(config, items):
    for item in items:
        # 可选:只给tests目录下的测试用例加标记(过滤其他路径的测试)
        if "tests/" in str(item.fspath):
            item.add_marker(pytest.mark.mymark)

补充说明

pytest更推荐将这类配置代码放在tests/conftest.py文件中(无需额外导入,pytest会自动识别),但放在__init__.py中也能正常生效。

内容的提问来源于stack exchange,提问作者mbt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 01:27:05