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

PyCharm启动pytest时辅助方法内assert调试信息缺失问题

问题根因

该问题是PyCharm 2021.3版本内置pytest执行器的默认堆栈裁剪逻辑导致的:测试运行器默认会裁减掉非测试入口函数的断言堆栈信息,仅保留测试用例入口层的报错记录,因此辅助函数内的断言详情不会完整输出。

修复方案

你可以任选以下任意一种方案解决:

  • 方案1:关闭PyCharm测试运行的堆栈裁剪开关
    操作步骤:
    1. 点击顶部菜单栏「运行」→「编辑配置」
    2. 找到对应Python测试的配置项,或者编辑「Python测试」分类下的默认配置模板
    3. 取消勾选「缩短堆栈跟踪」(英文版本对应为Trim stack trace)选项,保存配置后重新运行测试即可
  • 方案2:在辅助函数内显式声明保留堆栈
    在自定义校验的辅助函数开头添加__tracebackhide__ = False,强制pytest保留该函数的堆栈信息,修改后代码示例:
    class TestTest:
        def test_test(self):
            self.verify(1)
    
        def verify(self, parameter):
            __tracebackhide__ = False
            assert 1 == 2, "TEST"
    
  • 方案3:升级PyCharm版本
    升级PyCharm到2022.1及以上版本,该版本已经修复了内置测试运行器默认裁剪辅助函数断言堆栈的bug。

修改后重新运行测试,即可输出和断言直接写在测试用例函数中完全一致的完整调试信息,包含自定义的报错信息、断言对比内容和完整堆栈跟踪。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:04