当我尝试在没有显示器的 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
我现在在 Jenkins 中遇到这个错误
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