我尝试在主程序不显示任何消息的情况下运行我的测试。我只想显示来自 nosetests 的详细消息。
例如:
nosetests -v --nologcapture
我的主程序中的所有打印输出消息都将消失。
但是,我在主程序(来自 matplotlib 的 plt.show()
)中调用的图形仍然显示。
如何在不显示 matplotlib 图形的情况下运行测试?
最佳答案
我假设您正在对您的代码调用单元测试,所以我建议您安装 python Mock图书馆。任何将执行 plt.show()
函数的测试都应该将其模拟为基本上什么都不做。
这是单元测试中想法的粗略示例:
from mock import patch
... unittest boiler plate stuff ...
@patch("matplotlib.pyplot.show")
def testMyCode(self, mock_show):
mock_show.return_value = None #probably not necessary here in your case
... rest of test code ...
patch
函数将使用这个新的 mock_show
覆盖正常的 show 函数,您可以将其命名为任何东西。这基本上应该使 show now 在您的测试中不执行任何操作,也不会显示图表。
关于python - 如何在不显示我的 matplotlib 图表的情况下运行 nosetests?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343640/