1

我有一个用 Python 编写的小应用程序,它使用 Python Gtk3 绑定。应用程序的一部分从系统图标主题加载图标,如下所示:

def get_icon(name):
    from gi.repository import Gtk
    icon_theme = Gtk.IconTheme()
    if icon_theme.has_icon(name):
        return icon_theme.load_icon("status-red", 32, 0)

这正是我想要的——加载一个图标并给我一个GdkPixbuf.Pixbuf实例。

当我的单元测试运行时,问题就来了。我有测试此代码的测试,如果测试在开发人员机器上运行,一切正常。

但是,测试是在构建包之前自动运行的(作为我们 CI 过程的一部分),并且应用程序包是在无头服务器上构建的。所以我的问题是:有没有办法只使用IconThemeGtk3 中的类而不需要运行 X11?

4

1 回答 1

2

没有 DISPLAY 就无法使用针对 X11 编译的 gtk+。

但是您始终可以在 xvfb(使用虚拟帧缓冲区的 X 服务器)中运行测试套件,这样您就不需要从现有终端运行,但您仍然需要 X。这非常简单;

xvfb-run.sh python testsuite.py
于 2012-04-04T19:34:22.527 回答