python - 如何在不显示我的 matplotlib 图表的情况下运行 nosetests?

标签 python unit-testing tdd nose

我尝试在主程序不显示任何消息的情况下运行我的测试。我只想显示来自 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/

相关文章:

ios - OCMock:返回与通过参数获取相同的值

javascript - 使用 PhantomJS 进行单元测试时如何防止 img src 404 错误

node.js - 使用Mocha/Chai测试NodeJS匿名回调代码

ios - 当参数不是预期的参数时,OCMock 抛出 NSInternalInconsistencyException

javascript - Chai断言测试对象结构是否至少包含其他对象结构

Python 包包含 MANIFEST 和 MANIFEST.in - 我是否 gitignore MANIFEST?

python - 如何使用 python 连接到 Cosmos DB Emulator 表存储?

unit-testing - 测试 BDD 中的副作用

python - 忽略正则表达式匹配中的换行符

python - 如何使用python根据周数确定日期?