Android UiAutomator 测试用例 jar 文件不工作
Android UiAutomator test case jar file is not working
我一直在尝试使用 UiAutomator 工具编写一些 android 代码的工具测试用例。这个测试用例可以通过 android studio 运行 没有任何问题。但现在我想将这个测试用例作为 jar 文件安装到设备中,需要通过命令行 运行。我尝试了以下 link 来构建和部署 uiautomator 测试:
https://stuff.mit.edu/afs/sipb/project/android/docs/tools/testing/testing_ui.html#creating
生成 build.xml 但是当执行命令 "ant build" 时显示错误:
Android/Sdk/tools/ant/uibuild.xml:198: null returned: 1
之后,我尝试使用 gradle 构建而不是使用此 link
的 ant 构建工具来创建 jar 文件
http://wiliamsouza.github.io/#/2013/10/30/android-uiautomator-gradle-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 文件。在 build/libs 文件夹中找到已安装的 jar 文件,
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
有人对此有任何想法吗..我如何创建我的 uiautomator 测试用例的 jar 文件以及如何通过命令行 运行 它们..?
找到解决方案了!!!
实际上我的要求是通过命令行 运行 工具测试用例(在我的例子中是 UiAutomator),为此不需要生成测试的 jar 文件 类 并安装它们到设备,而不是我们可以创建测试用例包的单独 apk 文件,并以与安装应用程序 apk 文件相同的方式安装它们。然后 运行 用于执行测试用例的 adb 命令。请查看下面的link,其中有详细的解释。
https://developer.android.com/studio/test/command-line.html#RunTestsCommand
我一直在尝试使用 UiAutomator 工具编写一些 android 代码的工具测试用例。这个测试用例可以通过 android studio 运行 没有任何问题。但现在我想将这个测试用例作为 jar 文件安装到设备中,需要通过命令行 运行。我尝试了以下 link 来构建和部署 uiautomator 测试:
https://stuff.mit.edu/afs/sipb/project/android/docs/tools/testing/testing_ui.html#creating
生成build.xml 但是当执行命令 "ant build" 时显示错误:
Android/Sdk/tools/ant/uibuild.xml:198: null returned: 1
之后,我尝试使用 gradle 构建而不是使用此 link
的 ant 构建工具来创建 jar 文件http://wiliamsouza.github.io/#/2013/10/30/android-uiautomator-gradle-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 文件。在 build/libs 文件夹中找到已安装的 jar 文件,
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
有人对此有任何想法吗..我如何创建我的 uiautomator 测试用例的 jar 文件以及如何通过命令行 运行 它们..?
找到解决方案了!!!
实际上我的要求是通过命令行 运行 工具测试用例(在我的例子中是 UiAutomator),为此不需要生成测试的 jar 文件 类 并安装它们到设备,而不是我们可以创建测试用例包的单独 apk 文件,并以与安装应用程序 apk 文件相同的方式安装它们。然后 运行 用于执行测试用例的 adb 命令。请查看下面的link,其中有详细的解释。
https://developer.android.com/studio/test/command-line.html#RunTestsCommand