2013-01-14 70 views
10

在工作中,我們完全測試了GUI組件。問題來自這樣一個事實,即在測試套件運行時,各種組件會彈出,從而無法繼續工作。我想到的第一件事是Xnest,但我想知道是否有更優雅的解決方案來解決這個問題。假X服務器進行測試?

回答

9

我認爲你需要做的是讓你的測試在不同的顯示器上運行,而不是你正在使用的顯示器上。

當我們將TeamCity代理移動到EC2時,我們必須找出一個解決方案,在無頭Linux服務器上運行我們的UI單元測試。我在這個blog post中找到了一個辦法,它概述瞭如何使用Xvfb。

對於我而言,我不得不做的是:

  • yum install xorg-x11-server-Xvfb
  • Xvfb :100 -ac運行服務器。我將這添加到我的EC2代理的rc.local文件中,以便在機器啓動時啓動它。
  • 然後我說env.DISPLAY :100我的TeamCity構建配置
+0

我想你的解決方案,但不幸的分段故障我的測試中墜毀。我使用了很多東西,特別是Qt和OpenGL。你知道任何可能在標準X服務器上工作,但在Xvfb上失敗的東西嗎? –

+1

@StefanoBorini不幸的是沒有。我的理解是,它應該像一個'真正的'X服務器,但當然可能會有與實現有關的問題,就像任何事情一樣。快速谷歌確實發現了這個bug:https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/296230請注意,解決方法是啓動Xvfb -extension GLX – sharakan

+0

明天我會試試看。謝謝。你一直非常有幫助。 –