0

当我尝试在没有显示器的 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
4

1 回答 1

2

您没有说 Robotium 测试是否在您的本地机器上工作,所以我不知道 Robotium 代码本身是否正确。

但是关于 Xvnc 设置,我看到了几个可能的问题:

  1. “VNC Viewer.app”听起来像一个 VNC客户端,而不是 X11服务器

  2. 据我所知,您不能只在命令行上运行“/Applications/Foo.app”。您通常需要运行实际的二进制文件;类似“/Applications/Foo.app/Contents/MacOS/foo”的东西。

于 2013-05-25T22:23:40.237 回答