我一直在尝试使用uiautomator工具编写一些仪器测试案例。该测试用例可以通过Android Studio毫无问题地通过Android Studio运行。但是现在,我想将此测试用例安装到设备中作为JAR文件,并且需要通过命令行运行。我尝试了以下链接来构建和部署uiautomator测试:
https://stuff.mit.edu/afs/sipb/project/android/docs/tools/tools/testing/testing_ui.html#creating
build.xml是生成的,但是当执行命令" ant构建"时,会显示错误:
Android/Sdk/tools/ant/uibuild.xml:198: null returned: 1
之后,我尝试使用gradle build创建JAR文件而不是使用此链接来创建ANT构建工具
http://wiliamsouza.github.io/#/2013/10/10/10/android-uiautomator-gradle-build-build-system
我已经从项目目录和输出中运行了" gradle build"命令;
Building dex...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test
:check
:build
BUILD SUCCESSFUL
Total time: 7.709 secs
但是在" DIST"文件夹中没有找到JAR文件。在已安装的JAR文件中,在build/libs文件夹中找到了
adb push sample-0.1.jar /data/local/tmp/
然后尝试使用命令
运行测试用例 adb shell uiautomator runtest sample-0.1.jar -c com.test.uiautomator.sample.Sample
,但显示出错误为:
INSTRUMENTATION_RESULT: shortMsg=java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg=Didn't find
class"com.test.uiautomator.sample.Sample"
on path: DexPathList[[zip
file"/system/framework/android.test.runner.jar",
zip file"/system/framework/uiautomator.jar",
zip file"/data/local/tmp/sample-0.1.jar"],
nativeLibraryDirectories=[/vendor/lib, /system/lib]]
INSTRUMENTATION_CODE: 0
有人对此有任何想法吗?
有解决方案!
实际上我的要求是通过命令行运行仪器测试用例(我的情况下),为此目的,不必生成测试类的JAR文件并将其安装到设备上,而是我们可以创建单独的APK测试案例包装的文件,并以与安装应用程序APK文件相同的方式安装它们。然后运行用于执行测试用例的ADB命令。请检查以下链接,其中具有详细说明。
https://developer.android.com/studio/test/command-line.html#runtestscommand