我尝试使用Android-sdk为我的应用提供的工具为我的应用创建GUI测试。首先,我已经设置了一个项目,如http://developer.android.com/tools/testing/testing_ui.html中所述"配置您的开发环境"。目前我已经从http://developer.android.com/tools/testing/testing_ui.html#sample进行了示例测试并将其放在项目UITestsMyAppBasis中,在com.MyApp.guitest包中
命令ant build成功运行,我在项目的bin目录中获取了一个jar文件。但是,当我尝试通过以下方式启动它时:
adb push ./UiTestsMyAppBasis.jar /data/local/tmp
adb shell uiautomator runtest UITestsMyAppBasis.jar -c com.MyApp.guitest
我得到控制台输出:
INSTRUMENTATION_RESULT: shortMsg=java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg=com.MyApp.guitest
INSTRUMENTATION_CODE: 0
和logcat输出:
java.lang.RuntimeException: com.MyApp.guitest
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:98)
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:85)
at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:76)
at com.android.commands.uiautomator.Launcher.main(Launcher.java:83)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.MyApp.guitest
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at com.android.uiautomator.testrunner.TestCaseCollector.addTestClass(TestCaseCollector.java:84)
at com.android.uiautomator.testrunner.TestCaseCollector.addTestClass(TestCaseCollector.java:72)
at com.android.uiautomator.testrunner.TestCaseCollector.addTestClasses(TestCaseCollector.java:53)
at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:95)
我正在使用带有
的Android模拟器TargetName:Google API(Google Inc.)
平台:4.1.2
API级别:16
CPU / ABI ARM(armeabi-v7a)
设备:10.1" WXGA(平板电脑)(1280x800; mdpi)
内存选项:Ram:512 VM堆:32
内部存储:200 MiB
SD卡:256 MiB
仿真选项:使用主机GPU
如https://stackoverflow.com/a/13805869/1171328中所述,在/ data / dalvik-cache上设置chmod并没有改变输出。
答案 0 :(得分:1)
我相信,这应该可以解决你的问题:
-c参数用于运行类而不是包。所以它应该是:
adb shell uiautomator runtest UITestsMyAppBasis.jar -c com.MyApp.guitest.<class_name>
答案 1 :(得分:0)
检查此问题的最佳方法是在不使用-c#的情况下运行此命令并检查它是否有效。如果有效,请检查它在终端中打印的类名是与-c
一起使用的类名adb shell uiautomator runtest UITestsMyAppBasis.jar