Python 运行时错误:无法打开显示

Python 运行时错误:无法打开显示,python,pygtk,tox,Python,Pygtk,Tox,我有一个单元测试,它包含 import gtk 其中包含用于测试信号处理程序和GUI类的单元测试。当我在shell中运行py.test时,这可以正常工作,因为我连接了X11显示器。但是,当我尝试运行tox时,我得到: ______________________ ERROR collecting tests/test_gui.py ______________________ tests/test_gui.py:17: in <module> from rprs_boots

我有一个单元测试,它包含

import gtk
其中包含用于测试信号处理程序和GUI类的单元测试。当我在shell中运行
py.test
时,这可以正常工作,因为我连接了X11显示器。但是,当我尝试运行tox时,我得到:

______________________ ERROR collecting tests/test_gui.py ______________________
tests/test_gui.py:17: in <module>
    from rprs_bootstrap.gui import GUI
src/gui.py:12: in <module>
    import gtk.glade
.tox/py27/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:64: in <module>
    _init()
.tox/py27/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:52: in _init
    _gtk.init_check()
E   RuntimeError: could not open display
!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.34 seconds ============================
make: *** [tox] Error 2
收集测试时出错/test\gui.py______________________
测试/测试gui.py:17:in
从rprs_bootstrap.gui导入gui
src/gui.py:12:in
进口gtk.glade
.tox/py27/lib/python2.7/site packages/gtk-2.0/gtk/_init_uuu.py:64:in
_init()
.tox/py27/lib/python2.7/site packages/gtk-2.0/gtk/_init__.py:52:in_init
_gtk.init_check()
E运行时错误:无法打开显示
!!!!!!!!!!!!!!!!!!!! 中断:在1次失败后停止!!!!!!!!!!!!!!!!!!!!
===========================================0.34秒内出现1个错误============================
制造:**[tox]错误2
我可以从
tox.ini
中启动一个服务器,但这似乎不雅观。有什么建议吗?

使用

哪个

[…]使用Xvfb运行测试套件,以避免在测试过程中弹出窗口 GUI测试或允许它们在没有显示器的系统上运行(如 CI)

要安装:

pip install pytest-xvfb

PyTestXVFB在你的回答中似乎很好,但是为什么你要考虑用XVFB不雅来运行你的测试?@ BHRAX:它涉及安装不全开发人员都可能拥有的系统范围的包。这是另一个让人抓狂的依赖项,它正等着把事情搞得一团糟,就像一个邪恶的小淘气鬼在它那双死气沉沉、漠不关心的眼睛里恶作剧一样。我最初有着完全相同的心理反对(WRT pytests xvfb:-),但我想它的优点是,你可以将pytests xvfb作为受控开发环境的一部分,而不是“系统范围的”即使您需要安装Xvfb才能真正使用它,也要安装它吗?