我正在尝试制作一个包图形用户界面一个用于绘制图表的软件包。它的测试需要运行 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,还包括autopkgtest
、sbuild
、pbuilder
环境)构建。总而言之,Debian 软件包应该只安装其构建依赖项即可成功构建,而无需其他任何内容。
对此的规范解决方案是 - 构建依赖于財委
- 像这样运行你的测试xvfb-run
(在规则):
override_dh_auto_test:
xvfb-run dh_auto_test