我想通过命令行构建、安装并运行uiautomator项目的测试。
在上一个版本中,我正在做:

android create uitest-project -n <project_name> -p <project_path> -t <target_id>
ant build

建造
然后
adb push <jar_path> /data/local/tmp

安装并最终
adb shell uiautomator runtest <jar_name> -c <main_class>

但是,现在我被困在大楼里了。
结果是
-check-env:
  [checkenv] Android SDK Tools Revision 24.1.2
  [checkenv] Installed at C:\Android
-build-setup:
[getbuildtools] Using latest Build Tools: 22.0.0
    [echo] Resolving Build Target for AndroidExplorerTester...
[getuitarget] Project Target:   Android 5.0.1
[getuitarget] API level:        21
    [echo] ----------
    [echo] Creating output directories if needed...
-pre-compile:
compile:
-post-compile:
-dex:
    [dex] input: <test_path>\bin\classes
    [dex] Converting compiled files and external libraries into <test_path>\bin\classes.dex...
     [dx] no classfiles specified
BUILD FAILED
C:\Android\tools\ant\uibuild.xml:198: null returned: 1
Total time: 1 second

我不知道现在是否有更好的方法来做,因为新版本的uiautomator。
注意:我不知道这是否重要,但我以前使用过eclipse,现在使用intellij(android studio,如果您喜欢lol的话)

最佳答案

这里还有一个方法,对那些谁不想搬到毕业,并希望留在蚂蚁。顺便说一句,老办法行不通的主要原因是,uiautomator从2.0版本开始从jars的独立测试运行程序迁移到应用程序的标准android“am instrument”测试运行程序。这一举动只有一个“反面”。现在,测试项目应该绑定到一个明确的目标应用程序(请参见第一步中的解决方法)。所以这是一个计划。
首先,你应该有一个目标项目,你的测试是为它设计的。实际上,它可以是一个空的应用程序,无论是在应用程序菜单中,还是在测试期间,都不会显示。我在eclipse中创建了一个,而没有在wizard中创建任何活动。要运行ant的build.xml:

android update project --target 0 --path %path_to_empty_app%

有关android工具的更多信息,请参见http://developer。安卓。com/tools/projects/projects命令行.html
注意:您可能需要为目标应用程序授予必要的权限,该权限将传播到测试应用程序。现在不使用shell用户权限运行测试。
第二步是创建测试项目。正如我所提到的,uiautomator现在集成在标准的android测试方案中。因此,它使用标准命令创建测试应用程序:
android create test-project -m %path_to_target_app% -n %test_app_name% -p %path_to_test_app%

通常的应用程序结构将在%path_to_test_app%中创建,包括ant的build.xml
有关更多信息,请参见http://developer.android.com/tools/testing/testing_otheride.html
第三:复制uiautomator类jar来测试app libs。jar可以从位于sdk中的*.aar文件中提取,该文件位于\extras\android\m2repository\com\android\support\test\uiautomator\uiautomator-v18\2.1.0或类似文件中。
第四:将测试类*.java设置为测试APP SRC文件夹。请注意uiautomator中的以下更改:
包从com.android.uiautomator重命名为
android.support.test.uiautomator系统
uiAutomatorTestCase类是
保持兼容性,但已弃用;扩展测试类
从InstrumentationTestCase中,若要获取uiDevice实例,请使用
uidevice.getInstance(getInstrumentation())
第五:安装并运行测试。简单的方法如下:
cd %path_to_test_app%
:: Here 'ant instrument install' builds and installs both target and test apps.
ant instrument install
ant test

或者最后一行可以修改为
adb shell am instrument -w %target_app_full_name%.tests/android.test.InstrumentationTestRunner

有关更多信息,请参见http://developer.android.com/reference/android/test/InstrumentationTestRunner.html

关于android - 从命令行构建UiAutomator 2.0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29301693/

10-09 09:29