Как настроить jenkins с xvnc на OSX Lion для проекта maven

Когда задание jenkins запускается, я получаю этот вывод:

...

Запуск xvnc

[workspace] $ /Applications/VNCServer.app/OSXvnc-server -rfbauth /Applications/VNCServer.app/pass.word :11 -geometry 800x600

2012-02-08 22:04:05.375 OSXvnc-server[3412:707] Arguments: -rfbauth /Applications/VNCServer.app/pass.word :11 -geometry 800x600 

2012-02-08 22:04:05.394 OSXvnc-server[3412:707] Main Bundle: /Applications/VNCServer.app
[workspace] $ /bin/sh -xe /var/folders/5d/jp_23pvd3bq5331x7myfcrym0000gq/T/hudson487661983531354780.sh

2012-02-08 22:04:05.425 OSXvnc-server[3412:707] Loading Bundle /Applications/VNCServer.app/Contents/Resources/TigerBundle.bundle

Parsing POMs
2012-02-08 22:04:05.441 OSXvnc-server[3412:707] Loading Bundle /Applications/VNCServer.app/Contents/Resources/JaguarBundle.bundle

2012-02-08 22:04:05.447 OSXvnc-server[3412:707] Running in Little Endian

2012-02-08 22:04:05.448 OSXvnc-server[3412:707] Pasteboard Inaccessible - Pasteboard sharing disabled

2012-02-08 22:04:05.449 OSXvnc-server[3412:707] Waiting for clients

2012-02-08 22:04:05.449 OSXvnc-server[3412:2c03] Using Private Event Source

2012-02-08 22:04:05.450 OSXvnc-server[3412:2c03] No Event Source -- Using 10.3 API

2012-02-08 22:04:05.451 OSXvnc-server[3412:2c03] Using Dynamic Event Tap -- HID for console user

2012-02-08 22:04:05.452 OSXvnc-server[3412:2c03] Registering Bonjour Service(_rfb._tcp.) - jjmacbook.local

2012-02-08 22:04:05.452 OSXvnc-server[3412:3503] IPv6: Started Listener Thread on port 5901

2012-02-08 22:04:05.453 OSXvnc-server[3412:2c03] Started Listener Thread on port 5901

[workspace] $ /Library/Java/Home//bin/java -cp /Users/jenkins/.jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.2.jar:/Users/jenkins/.jenkins/tools/Maven/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main 

/Users/jenkins/.jenkins/tools/Maven /Users/jenkins/.jenkins/war/WEB-INF/lib/remoting-2.9.jar /Users/jenkins/.jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.2.jar 50302

<===[JENKINS REMOTING CAPACITY]===>channel started

Executing Maven:  -B -f /Users/jenkins/.jenkins/jobs/chess-svg/workspace/pom.xml clean install

Однако автоматические тесты пользовательского интерфейса по-прежнему появляются на моем экране.

Используется vncserver: http://sourceforge.net/projects/osxvnc/.


person jontejj    schedule 08.02.2012    source источник


Ответы (1)


Я сталкиваюсь с такой же проблемой, и я думаю, что это может быть на самом деле невозможно.

Проблема в том, что версии Firefox/Chrome, работающие в OSX, предназначены для OSX, а не для «простого» X11, поэтому, даже если вы запустите сервер X11 и используете xvfb / xvnc/whatever и передадите DISPLAY=:123, Firefox/ Хрому все равно, потому что они не основаны на X, они основаны на углероде / какао.

Вы можете подтвердить это самостоятельно следующим образом:

  1. Запустить сервер X11 (из прожектора)
  2. в новом xterm введите "xhost +" (просто чтобы убедиться)
  3. xvfb -br -экран 0 1280x1024x24 :123123 &
  4. Теперь у вас есть новый фреймбуфер на дисплее 123123 — запустите там xterm:
  5. ДИСПЛЕЙ =: 123123 xterm &
  6. На главном экране ничего не появилось, потому что новый xterm находится в фоновом режиме. Проверьте, есть ли:
  7. xlsclients-дисплей: 123123
  8. Вы увидите одну запись, xterm, которую вы создали там.
  9. Теперь попробуйте через браузер:
  10. DISPLAY=:123123 /Applications/Firefox.app/Contents/MacOS/firefox
  11. ...и Firefox по-прежнему отображается на главном экране.

    Вы можете проверить это с помощью других вещей - если вы сделаете "DISPLAY=:123123 xcalc", xcalc не появится на главном экране, но будет отображаться в списке вещей из xlsclients, потому что он основан на X.

    Но если вы попробуете «DISPLAY=:123123/Applications/Calculator/Contents/MacOS/Calculator», калькулятор OSX появится на главном экране, потому что он не основан на X.

    (другое возможное решение — использовать сервер селена, но наше веб-приложение ломает сервер селена, поэтому для нас это не вариант — в конце концов я переключился на использование установки Jenkins на основе Windows, где селен и хромированный драйвер отлично работают при запуске из Дженкинс).

person Dan Mitchell    schedule 17.02.2012
comment
Спасибо, что разъяснили, что программам, не основанным на X, все равно. Однако я тестирую приложение JAVA на основе свинга, а не приложение на основе селена. Я использую fest (code.google.com/p/fest) для выполнения Тестирование графического интерфейса. Если хотите, можете посмотреть код здесь: code.google.com/p/chess- svg Возможно, свинг не основан на X? - person jontejj; 18.02.2012
comment
Извините, я ничего не знаю о Swing. Кроме того, последний комментарий здесь: code.google.com/p/js. -test-driver/wiki/ContinuousBuild подразумевает, что кто-то еще успешно запустил браузер на OSX через jenkins и xvfb, так что вполне может быть больше, чем я понимаю. - person Dan Mitchell; 21.02.2012