我已升级到最新版本的 Android Studio(1.5)和SDK,现在我的 UIAutomator 测试,从ant运行,不再工作了(他们使用了到,直到Android Studio 1.0.x)。
这是我用来运行测试的脚本:
@echo off
cls
set ANDROID_HOME=C:\Users\xxxx\AppData\Local\Android\sdk
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65
cmd /c ..\..\..\..\..\..\..\..\thirdparty\ant\bin\ant build
if ERRORLEVEL 1 goto end
:run
cmd /c adb push ..\..\..\..\..\..\..\app\libs\uiautomator.jar /data/local/tmp
cmd /c adb push .\bin\MyTestsUIAutomatorTest.jar /data/local/tmp
cmd /c adb shell uiautomator runtest MyTestsUIAutomatorTest.jar -c xxxxxx.haylugar.uiautomator.src.SettingsActivityUIAutomatorTest
cmd /c adb shell uiautomator runtest HayLugarUIAutomatorTest.jar -c xxxxxx.haylugar.uiautomator.src.ParkingListActivityUIAutomatorTest
cmd /c adb shell uiautomator runtest HayLugarUIAutomatorTest.jar -c xxxxx.haylugar.uiautomator.src.ParkingDetailActivityUIAutomatorTest
使用ant构建时,找不到uiautomator.jar对象:
src\ParkingDetailActivityUIAutomatorTest.java:3: error: package com.android.uiautomator.core does not exist
[javac] import com.android.uiautomator.core.UiObject;
显然,指令已根据this和this进行了更改,但是我跟着他们并且他们遗漏了某些内容(我在运行测试时说“没有找到运行的测试”时出错) 。无论如何,我只想以我以前的方式运行我的测试!我不想改变配置并浪费时间来使用Android SDK团队的新知识......
答案 0 :(得分:0)
固定!
我需要手动编辑build.xml以覆盖SDK提供的uibuild.xml的编译和dex目标,以正确地完成工作,在某处复制所需的库(uiautomator.jar和junit.jar)我的项目结构:
<property name="jar.libs.dir" value="../../../../../../libs" />
<property name="jar.libs.absolute.dir" location="${jar.libs.dir}" />
<path id="classpath">
<fileset dir="${jar.libs.absolute.dir}">
<include name="uiautomator.jar" />
<include name="junit-4.12.jar" />
</fileset>
</path>
<!-- version-tag: VERSION_TAG -->
<import file="${sdk.dir}/tools/ant/uibuild.xml" />
<!-- overwrite the compile target in uibuild.xml to include to external
jars -->
<target name="compile" depends="-build-setup, -pre-compile">
<javac encoding="${java.encoding}" source="${java.source}"
target="${java.target}" debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}" bootclasspathref="project.target.class.path"
verbose="${verbose}" fork="${need.javac.fork}">
<src path="${source.absolute.dir}" />
<classpath refid="classpath" />
<compilerarg line="${java.compilerargs}" />
</javac>
</target>
<!-- overwrite the -dex target in uibuild.xml to include external jar files
into the target dex file. -->
<target name="-dex" depends="compile, -post-compile">
<dex executable="${dx}" output="${intermediate.dex.file}"
nolocals="@{nolocals}" verbose="${verbose}">
<path path="${out.classes.absolute.dir}" />
</dex>
</target>
</project>