Python 如何从pytest回溯中删除库代码调用?

Python 如何从pytest回溯中删除库代码调用?,python,unit-testing,mocking,pytest,Python,Unit Testing,Mocking,Pytest,我在python项目中使用pytest和mock 当我遇到一个涉及模拟对象(几乎所有对象)的测试失败时,回溯会深入模拟库源代码,而实际上触发失败的代码通常会滚动到视图之外 有没有办法告诉py.test从回溯中排除已安装的库之类的东西?噪声级正在从一个甜美的测试库中消失。有一个漏洞:定义局部变量的函数将不会显示。例如: def some_support_code(x, y): __tracebackhide__ = True assert x == y 包括将隐藏模拟库中的回溯的

我在python项目中使用pytest和mock

当我遇到一个涉及模拟对象(几乎所有对象)的测试失败时,回溯会深入模拟库源代码,而实际上触发失败的代码通常会滚动到视图之外


有没有办法告诉py.test从回溯中排除已安装的库之类的东西?噪声级正在从一个甜美的测试库中消失。

有一个漏洞:定义局部变量的函数将不会显示。例如:

def some_support_code(x, y):
    __tracebackhide__ = True
    assert x == y

包括将隐藏模拟库中的回溯的功能。只需安装
pytestmock
就可以了。

Hmm,这很有趣。我想知道,在我的情况下,如何隐藏所有模拟库调用?在模拟库的最常见函数中添加
\uu tracebackhide\uu=True
。如果你喜欢更通用的东西,你可以直接破解py.test。啊,但是mock是一个标准的Python库,通过
pip install mock
安装,而不是我自己开发的代码。我要寻找的是一种排除任何我不拥有的“库”代码的方法,可能是通过pytest检测到它安装在
site-package/
或任何东西中并排除它,即像我一样将其视为“黑盒”。