Python PyTest Matplotlib图显示在屏幕上

Python PyTest Matplotlib图显示在屏幕上,python,python-3.x,matplotlib,testing,pytest,Python,Python 3.x,Matplotlib,Testing,Pytest,我有一个名为plotter()的复杂方法,它处理一些数据并生成包含多个组件的matplotlib绘图。由于它的复杂性,我只想测试一下这个图是否出现。这将确认所有数据都得到了合理的处理,并且显示的内容没有抛出任何错误。我不希望运行一个图像比较,因为这是目前不可能为这个项目 我的函数太复杂,无法在这里显示,因此可以考虑以下示例 import matplotlib.pyplot as plt import numpy as np def plotter(): x = np.arange(0,

我有一个名为
plotter()
的复杂方法,它处理一些数据并生成包含多个组件的matplotlib绘图。由于它的复杂性,我只想测试一下这个图是否出现。这将确认所有数据都得到了合理的处理,并且显示的内容没有抛出任何错误。我不希望运行一个图像比较,因为这是目前不可能为这个项目

我的函数太复杂,无法在这里显示,因此可以考虑以下示例

import matplotlib.pyplot as plt
import numpy as np

def plotter():
    x = np.arange(0,10)
    y = 2*x
    fig = plt.plot(x, y)

plotter()
plt.show()
有没有一种方法可以使用PyTest简单地断言一个图形出现?如果没有,那么使用其他测试框架的解决方案也将受到极大的赞赏


(对于上下文,我使用的是Python 3。)

通常,图形不出现的唯一原因是出现错误。因此,完全使用
绘图仪
作为测试应该可以,
def test_plotter():plotter()
。对于更新的问题,
def test_plotter():plotter();plt.show()
谢谢,抱歉没有回复,只是更新了问题;我在一个非常紧迫的最后期限,并已把这个特殊的问题推到一边。我确实尝试了你的建议,但是当我运行pytest时,会出现这个图,因此需要先关闭它,然后才能运行其余的测试。我想避免这种情况,但在仍然调用plt.show()时找不到抑制图像的方法。是的,如果要测试图中是否显示图像,则必须显示图像。但是,也许您可以测试图形是否可以绘制或保存<代码>plt.draw()
plt.savefig(..)
。成功绘制或保存的图形不会显示的原因是后端特定的。