C++ 与Hudson和自动测试QWidgets的持续集成

C++ 与Hudson和自动测试QWidgets的持续集成,c++,unit-testing,qt,hudson,qwidget,C++,Unit Testing,Qt,Hudson,Qwidget,我在开发计算机上玩Hudson时遇到了一个问题,我的一个自动单元测试必须创建一个QApplication来测试QWidget的子类。因为hudson在没有X的情况下运行,所以它失败了。错误日志显示未知:无法连接到X服务器 我是否有办法使用哈德逊或类似的CI系统自动执行这些测试?我使用的库阻止我将测试中的代码与QWidget分离。除非他们具备单元测试所需的功能,否则他们是否通过测试都不是有用的信息。在那一点上你真正在测试什么 有条件地编译单元测试以不包含它们。如果你有特定于Mac的代码,你就不会

我在开发计算机上玩Hudson时遇到了一个问题,我的一个自动单元测试必须创建一个QApplication来测试QWidget的子类。因为hudson在没有X的情况下运行,所以它失败了。错误日志显示未知:无法连接到X服务器


我是否有办法使用哈德逊或类似的CI系统自动执行这些测试?我使用的库阻止我将测试中的代码与QWidget分离。

除非他们具备单元测试所需的功能,否则他们是否通过测试都不是有用的信息。在那一点上你真正在测试什么

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

  • 修复单元测试

尝试启动一些X服务器。记住,它不需要实际显示任何内容——一个VNC服务器就足够了。然后,在hudson实例中设置$DISPLAY环境变量,使其指向VNC服务器。

当我最终拆分代码,以便在不降低创建QApplication和QWidgets的速度的情况下测试代码的内容时,我还找到了hudson的Xvnc插件,它完全符合这一建议。