【问题标题】:Continuous Integration with Hudson and Automated Testing QWidgets与 Hudson 和自动化测试 QWidgets 的持续集成
【发布时间】:2011-11-09 10:53:58
【问题描述】:

我在开发计算机上使用 Hudson 时遇到了一个问题,我的一个自动化单元测试必须创建一个 QApplication 才能测试 QWidget 的子类。由于 hudson 在没有 X 的情况下运行,因此失败。错误日志为unknown: cannot connect to X server

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

【问题讨论】:

    标签: c++ unit-testing qt hudson qwidget


    【解决方案1】:

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

    【讨论】:

    • 虽然我最终拆分了代码以便我可以测试它的内容,而不会降低创建 QApplication 和 QWidgets 所涉及的速度,但我还找到了 Hudson 的 Xvnc 插件,它完全符合这个建议.
    【解决方案2】:

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

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

    • 修复单元测试

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多