1

我正在尝试使用 Robotium 在 Linux 服务器上测试我的 Android 应用程序。

lt.socialheat.android.tests.SocialHeatTest:
Failure in testEventToMap:
junit.framework.AssertionFailedError: View with id: '2131034182' is not found!
    at com.jayway.android.robotium.solo.Solo.getView(Solo.java:1929)
    at com.jayway.android.robotium.solo.Solo.getView(Solo.java:1909)
    at lt.socialheat.android.tests.SocialHeatTest.testEventToMap(SocialHeatTest.java:45)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
    at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
    at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
    at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)

简单视图未发现异常,但测试在本地模拟器或实际设备上运行良好。服务器作为服务器,没有监视器或任何类型的 GUI,我在创建关于使用软件渲染而不是 GLES 的 AVD 时确实遇到了错误。那么是否可以在没有 GUI 的服务器上运行 Robotium 测试,如何实现这一壮举?

编辑:

模拟器参数:
android-17,intel ABI
模拟器 -avd test -no-skin -no-audio -no-window

4

1 回答 1

1

我之前在 EC2 实例上拥有一个完整的 Robotium 环境,所以我可以向您保证,这个壮举确实是可能的。

您需要执行以下操作:

  • 运行 VNC 会话( vnc4server, fluxbox) 并从那里运行模拟器实例。这至少可以摆脱您提到的零显示困境。
  • -noaudio启动模拟器时添加标志。这是一个奇怪的错误,但模拟器只是在无头实例上启动时冻结。
  • 一旦模拟器完成加载(通过 adb 状态检查),请记住它从显示的锁屏开始。通过执行解锁它adb shell input keyevent 82

我已经记录了我自己在这里完成它的冒险经历,所以请随时查看。 机器人 EC2 指南

于 2013-07-18T07:05:00.623 回答