我在一个模块中进行了一系列图像比较测试。当使用pytest时,我得到一个低内存警告,我假设是由于打开了多个测试图像(20+)。我该如何清洁或关闭它们?由于设置了我的代码fig.close()
将无法正常工作。我附上了一个我的测试结果如下所示的例子。
@pytest.mark.mpl_image_compare(baseline_dir='baseline',
filename='file.png',
style=('style_guidline'),
savefig_kwargs={'bbox_inches': 'tight'},
tolerance=5)
def test_3(self):
data = pd.read_csv('test.csv')
fig = module.create_figure(
data=data,
kind="bar_chart",
)
return fig
答案 0 :(得分:1)
一个万无一失的解决方案是关闭所有开放的数字:
>>> plt.close('all')
示例:
>>> import matplotlib.pyplot as plt
...
>>> fig1, ax1 = plt.subplots()
... fig2, ax2 = plt.subplots() # 2 separate figures
...
>>> plt.get_fignums()
...
[1, 2]
>>> plt.close('all')
>>> plt.get_fignums()
...
[]
其他选项:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.close.html