Java 如何在OSX Lion for maven项目上使用xvnc配置jenkins

Java 如何在OSX Lion for maven项目上使用xvnc配置jenkins,java,maven,osx-lion,jenkins,vnc-server,Java,Maven,Osx Lion,Jenkins,Vnc Server,当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.a

当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
[workspace]$/Applications/VNCServer.app/OSXvnc-server-rfbauth/Applications/VNCServer.app/pass.word:11-geometry 800x600
2012-02-08 22:04:05.375 OSXvnc服务器[3412:707]参数:-rfbauth/Applications/VNCServer.app/pass.word:11-geometry 800x600
2012-02-08 22:04:05.394 OSXvnc服务器[3412:707]主捆绑包:/Applications/VNCServer.app
[workspace]$/bin/sh-xe/var/folders/5d/jp23pvd3bq5331x7myfcrym0000gq/T/hudson487661983531354780.sh
2012-02-08 22:04:05.425 OSXvnc服务器[3412:707]正在加载Bundle/Applications/VNCServer.app/Contents/Resources/TigerBundle.Bundle
解析pom
2012-02-08 22:04:05.441 OSXvnc服务器[3412:707]正在加载Bundle/Applications/VNCServer.app/Contents/Resources/JaguarBundle.Bundle
2012-02-08 22:04:05.447运行在Little Endian中的OSXvnc服务器[3412:707]
2012-02-08 22:04:05.448 OSXvnc服务器[3412:707]无法访问粘贴板-禁用粘贴板共享
2012-02-08 22:04:05.449 OSXvnc服务器[3412:707]正在等待客户端
2012-02-08 22:04:05.449使用私有事件源的OSXvnc服务器[3412:2c03]
2012-02-08 22:04:05.450 OSXvnc服务器[3412:2c03]无事件源--使用10.3 API
2012-02-08 22:04:05.451 OSXvnc服务器[3412:2c03]使用动态事件点击——控制台用户隐藏
2012-02-08 22:04:05.452 OSXvnc服务器[3412:2c03]正在注册Bonjour服务(_rfb._tcp.)-jjmacbook.local
2012-02-08 22:04:05.452 OSXvnc服务器[3412:3503]IPv6:已在端口5901上启动侦听器线程
2012-02-08 22:04:05.453 OSXvnc服务器[3412:2c03]已在端口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
频道启动
执行Maven:-B-f/Users/jenkins/.jenkins/jobs/chess svg/workspace/pom.xml干净安装
然而,自动UI测试仍然会在我的屏幕上弹出窗口


使用的vncserver是

我遇到了同样的问题,我认为这实际上可能是不可能的

问题是,在OSX上运行的Firefox/Chrome版本是针对OSX的,而不是“普通”X11——因此,即使您运行X11服务器并使用xvfb/xvnc/whatever并传入DISPLAY=:123,Firefox/Chrome也不在乎,因为它们不是基于X的,而是基于碳/可可的

您可以自己确认,如下所示:

  • 运行X11服务器(从聚光灯)
  • 在新的xterm中,键入“xhost+”(只是为了确保)
  • xvfb-br-屏幕0 1280x1024x24:123123&
  • 现在,在显示屏123123上有了一个新的帧缓冲区——在上面运行一个xterm:
  • 显示=:123123 xterm&
  • 主屏幕上没有显示任何内容,因为新的xterm位于后台。检查是否在那里:
  • xlsclients-显示:123123
  • 您将看到一个条目,您在其中生成的xterm
  • 现在用浏览器试试:
  • DISPLAY=:123123/Applications/Firefox.app/Contents/MacOS/Firefox
  • …Firefox仍会显示在您的主屏幕上

    您可以用其他东西来检查这一点——如果您使用“DISPLAY=:123123 xcalc”,xcalc将不会出现在主屏幕上,但它将显示在xlsclients的内容列表中,因为它是基于X的

    但是如果您尝试“DISPLAY=:123123/Applications/Calculator/Contents/MacOS/Calculator”,OSX计算器会显示在主屏幕上,因为它不是基于X的

    (另一种可能的解决方案是使用selenium服务器,但我们的web应用程序破坏了selenium服务器,因此这不是我们的选择——最后,我改用了基于Windows的Jenkins安装,在Jenkins上运行selenium和chromedriver时效果良好)


  • 感谢您澄清非X类项目不会在意。然而,我正在测试一个基于swing的JAVA应用程序,而不是一个基于selenium的应用程序。我使用fest()来执行GUI测试。如果你愿意,你可以看看这里的代码:swing不是基于X的吗?对不起,我对swing一无所知。另外,这里的最后一条评论:意味着其他人已经成功地通过jenkins和xvfb在OSX上运行了浏览器,因此可能会发生比我所理解的更多的事情。