Unit testing 使用';Agg&x27;鼻测试期间

Unit testing 使用';Agg&x27;鼻测试期间,unit-testing,matplotlib,nose,Unit Testing,Matplotlib,Nose,我有一个单元测试,它测试一个函数,该函数创建了几个图。我不想为那些图创建图形,所以我添加了matlplotlib。在单元测试和函数中使用('Agg') 以下是单元测试和功能的前两行: import matplotlib as mpl mpl.use('Agg') …我仍然得到这样的信息: This call to matplotlib.use() has no effect because the backend has already been chosen; matplotlib.use(

我有一个单元测试,它测试一个函数,该函数创建了几个图。我不想为那些图创建图形,所以我添加了
matlplotlib。在单元测试和函数中使用('Agg')

以下是单元测试和功能的前两行:

import matplotlib as mpl
mpl.use('Agg')
…我仍然得到这样的信息:

This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
…当我跑步时:

nosetests my_unit_test.py

在运行我的单元测试之前,nosetests是否运行目录中的其他代码

根据@Chris的建议,我将添加上面的评论,以防其他人也有同样的问题。解决方案似乎是更改
.matplotlibrc
文件中的默认后端(请参见matplotlib.org/users/customization.html)。由于后端在导入时设置为默认值,因此在单元测试目录中存储的
.matplotlibrc
中指定正确的后端似乎可以解决此问题。请注意,系统首先检查本地文件夹,如果在本地找不到,则默认为system
.matplotlibrc
。通过这种方式,可以在单元测试中包含一个自定义的默认文件。

我认为后端在导入时设置为默认值,您可以在
.matplotlibrc
文件()中更改默认后端。将此添加到单元测试目录中可能会起作用。很抱歉,响应延迟。我最初尝试过这个,但它不起作用,但我回到它,并意识到我搞砸了,如果你添加这个作为回应,我会接受它作为答案。我所需要的只是一个名为
matplotlibrc
的文件,该文件位于文件夹中,文件中除了
backend:agg
之外什么都没有。hi@Chris,感谢您的回复,我在下面添加了一个答案,请告诉我是否需要更多详细信息,以便让nosetests正常工作。