尝试在没有监视器的MacOS Mini上运行Robotium UI测试时,我首先遇到了此问题。我添加了Robotium代码来测试屏幕上的UI点击,因为我们想在回归测试中添加一些UI自动化。我在Jenkins服务器上收到的错误是当solo.clickInList(X)运行时:
junit.framework.AssertionFailedError: AbsListView is not found! [exec] at com.jayway.android.robotium.solo.Waiter.waitForAndGetView(Waiter.java:492) [exec] at com.jayway.android.robotium.solo.Clicker.clickInList(Clicker.java:406) [exec] at com.jayway.android.robotium.solo.Clicker.clickInList(Clicker.java:388) [exec] at com.jayway.android.robotium.solo.Solo.clickInList(Solo.java:1081) [exec] at com.cars.android.robotium.TestApplication.testSearch(TestApplication.java:29)
我发现Jenkins需要Xvnc插件来伪造UI,以便仿真器可以使用它。确保在特定作业中选中“显示仿真器窗口”。现在,我当前收到此错误。
/Applications/RealVNC/VNC\ Server.app :$DISPLAY_NUMBER -localhost -geometry 1280x1024 -depth 24 -SecurityTypes None
我现在在詹金斯遇到这个错误
Starting xvnc [workspace] $ "/Applications/RealVNC/VNC Viewer.app" :77 -localhost -geometry 1280x1024 -depth 24 -SecurityTypes None FATAL: Cannot run program "/Applications/RealVNC/VNC Viewer.app" (in directory "/Users/Shared/Jenkins/Home/jobs/Android/workspace"): error=13, Permission denied java.io.IOException: Cannot run program "/Applications/RealVNC/VNC Viewer.app" (in directory "/Users/Shared/Jenkins/Home/jobs/Android/workspace"): error=13, Permission denied
您没有说Robotium测试是否在您的本地计算机上运行,所以我不知道Robotium代码本身是否正确。
但是关于Xvnc设置,我看到几个可能的问题:
“ VNC Viewer.app”听起来像是VNC 客户端 ,而不是X11 服务器 。
据我所知,您不能仅在命令行上运行“ /Applications/Foo.app”。您通常需要运行实际的二进制文件。类似于“ /Applications/Foo.app/Contents/MacOS/foo”。