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

使用pytest --collect-only运行时如何上报跳过测试的原因?

pytest 6.2.2版本--collect-only模式输出测试跳过原因的方法

--collect-only模式默认仅执行测试用例收集逻辑,不会触发pytest的测试结果报告流程,所以常规用于输出跳过原因的-rsx参数在该模式下无法生效,可通过以下两种方案解决:

方案1:搭配详细输出参数(无需额外配置)

直接在命令中添加-v参数即可,兼容pytest 6.2.2版本:

pytest --collect-only -v

该命令会在收集结果的对应行末尾,直接标注每个跳过用例的具体原因。

方案2:自定义钩子实现结构化输出

如果需要统一收集、格式化输出所有跳过用例的原因,可在项目根目录的conftest.py文件中添加如下钩子代码:

def pytest_collection_modifyitems(session, config, items):
    for item in items:
        # 处理@pytest.mark.skip装饰的用例
        skip_mark = item.get_closest_marker("skip")
        if skip_mark:
            reason = skip_mark.kwargs.get("reason", "未配置跳过原因")
            print(f"[跳过用例] {item.nodeid} | 原因:{reason}")
        # 处理@pytest.mark.skipif装饰的用例
        skipif_mark = item.get_closest_marker("skipif")
        if skipif_mark and skipif_mark.args[0]:
            reason = skipif_mark.kwargs.get("reason", "未配置跳过原因")
            print(f"[跳过用例] {item.nodeid} | 原因:{reason}")

添加完成后直接运行pytest --collect-only,即可在控制台输出所有跳过用例的结构化信息。

注:如果存在模块级别、类级别的跳过逻辑,可以扩展上述钩子适配对应场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:00