代码之家  ›  专栏  ›  技术社区  ›  Andy Swanson

在没有显示器的设备上运行tkinter测试

  •  0
  • Andy Swanson  · 技术社区  · 2 年前

    我有一些Python代码,我为这些代码创建了一些tkinter GUI。我使用pytest框架为组成这些GUI的一些自定义框架编写了一些基本测试,它们在本地工作。然而,我在GitLab存储库中托管了这个项目,该存储库使用运行程序自动运行这些测试,而运行程序没有显示,导致测试失败。具体来说,它们在创建帧的主对象时失败,该主对象必须是Tk对象。初始化Tk对象时,tkinter源代码中的以下行由于Tcl错误而失败:

    self.tk = _tkinter.create(...)

    我不需要实际显示小部件,我只想测试在初始化它们和使用它们的方法时是否没有中断。我已经尝试过嘲笑Frame类(和以前一样的错误)和Tk类( Mock object has no attribute 'tk' ),但没有成功。我想知道是否有办法让这些测试在跑步者上运行,或者我是否应该在没有显示的情况下跳过测试。提前谢谢!

    1 回复  |  直到 2 年前
        1
  •  0
  •   Bryan Oakley    2 年前

    你必须有某种显示器才能运行一个基于tk的应用程序,这是无法回避的。如果您使用的是基于X11的系统(例如:linux),您可以通过在虚拟帧缓冲区(例如:xvfb)或运行X11的docker容器中运行应用程序来实现这一点。