在服务器上运行Robotium

时间:2013-07-17 17:39:22

标签: android robotium

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

之前我在EC2实例上有一个完全正常工作的Robotium环境,所以我可以向你保证,这项壮举确实可行。

您需要执行以下操作:

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

我已经记录了自己在这里完成任务的冒险经历,所以请随时查看。 Robotium EC2 Guide