2013-07-17 114 views
1

我试图在Robotium的Linux服务器上测试我的Android应用程序。在服务器上运行Robotium

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测试,以及如何完成这项壮举?

编辑:

模拟器PARAMS:
的android-17,英特尔ABI
模拟器-avd测试 - 无皮肤-no音频-no窗口

回答

1

我有一个完全运行在EC2实例之前的Robotium环境,所以我可以向你保证这个壮举确实是可能的。

你需要做以下事情:

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

我记录了我自己的冒险,在这里完成它,所以随时检查出来。 Robotium EC2 Guide

+0

我会试试,但我正在研究一个我没有root权限的大学服务器。 – DariusL

+1

'adb shell input keyevent 82' 我觉得这个固定它,测试成功完成。 – DariusL