2011-09-02 94 views
0

我在我的开发计算机上玩弄哈德森,遇到了一个问题,我的一个自动化单元测试必须创建一个QApplication才能测试QWidget的子类。由于哈德森在没有X的情况下运行,因此失败。错误日志显示为unknown: cannot connect to X server与Hudson的持续集成和自动化测试QWidgets

有没有办法让我使用Hudson或类似的CI系统自动执行这些测试?我正在使用的库阻止我将测试中的这个代码从QWidget中分离出来。

回答

1

尝试推出一些X服务器。记住它不需要物理地显示任何东西 - 一个VNC服务器就足够了。然后,在你的hudson实例中设置$ DISPLAY环境变量来指向VNC服务器。

+0

虽然我最终分裂了代码,以便可以在不减慢创建QApplication和QWidgets的速度的情况下测试它的代码,但我也发现了Hudson的Xvnc插件,它完全符合这个建议。 –

0

除非他们具有单元测试所需的设施,否则他们通过或不通过不是有用的信息。那时你真的在测试什么?

  • 有条件地编译单元测试不包括它们。如果你有Mac特定的代码,你不会在Windows上测试它。

  • 固定单元测试