构建运行需要 X 服务器的测试的包 (debuild)

构建运行需要 X 服务器的测试的包 (debuild)

我正在尝试制作一个包图形用户界面一个用于绘制图表的软件包。它的测试需要运行 X 服务器。一切似乎都构建良好,然后它进入测试并输出:

$ debuild -us -uc
...
1/8 Test #3: realplot_test_c ..................***Failed    0.01 sec
Software Radio Systems, Ltd: cannot connect to X server 
...

所有八个测试都失败了。我已经运行了 X,我可以打开 xterm,所以我认为我的 DISPLAY 变量没有问题。我猜是 debuild 的沙盒阻止/没有通过 X 显示。我应该尝试告诉 debuild 通过 X 显示,还是应该尝试告诉它根本不要运行测试?

答案1

当然,您可以通过运行 来告诉 debuild 保留 X 显示编号debuild -us -uc -eDISPLAY。但是,此解决方案不适用于大多数 Debian 软件包,因为它们不会从 X 环境(不仅包括官方的 debian buildd,还包括autopkgtestsbuildpbuilder环境)构建。总而言之,Debian 软件包应该只安装其构建依赖项即可成功构建,而无需其他任何内容。

对此的规范解决方案是 - 构建依赖于財委 - 像这样运行你的测试xvfb-run(在规则):

override_dh_auto_test:
  xvfb-run dh_auto_test

例如,查看 gnome-settings-daemon 的 salsa 存储库

相关内容