目前我正在以这种方式从命令行运行仪器测试:
adb shell am instrument -w com.blah.blah/android.test.InstrumentationTestRunner
有没有办法从 Eclipse 运行它们(自动安装应用程序)?
我无法确定自动部署到模拟器。但是,您可以使用相同的“adb shell”命令并创建外部启动配置。我在这里写了同样的话题。当您还使用“-e debug true”参数时,以这种方式启动会更加直观。
但是,我认为我已经从 bash shell 脚本中获得了更多的成果(如果您使用的是一个好的开发平台):
function adbtest() {
adb shell am instrument -w -e class blah.package.$1 blah.package.test/android.test.InstrumentationTestRunner;
}
这样,当我想测试 blah.package.FooTest 时,我只需要记住输入:
james@trex:~$ adbtest FooTest
我不知道从 Eclipse 自动运行测试的好方法,但我已经整理了一种使用 ant 自动构建和部署测试的直接方法。
我的项目组织如下:
为了在root/tests/build.xml 中支持junit,需要添加junit 的路径。一种方法是添加 compile、dex、debug 和 release 目标的路径(release 被省略,但它需要与 debug 相同的更改)。同样在编译目标中,我们包含 ../src 路径:
<!-- Compile this project's .java files into .class files. -->
<target name="compile" depends="dirs, resource-src, aidl">
<javac encoding="ascii" target="1.5" debug="true" extdirs=""
srcdir="src/:../src"
destdir="${outdir-classes}"
bootclasspath="${android-jar}">
<classpath>
<fileset dir="${external-libs}" includes="*.jar"/>
<fileset file="${junit-path}"/>
</classpath>
</javac>
</target>
<!-- Convert this project's .class files into .dex files. -->
<target name="dex" depends="compile">
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="--dex" />
<arg value="--output=${intermediate-dex-ospath}" />
<arg path="${outdir-classes-ospath}" />
<fileset dir="${external-libs}" includes="*.jar"/>
<fileset file="${junit-path}"/>
</apply>
</target>
<!-- Package the application and sign it with a debug key.
This is the default target when building. It is used for debug. -->
<target name="debug" depends="dex, package-res">
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
<exec executable="${apk-builder}" failonerror="true">
<arg value="${out-debug-package-ospath}" />
<arg value="-z" />
<arg value="${resources-package-ospath}" />
<arg value="-f" />
<arg value="${intermediate-dex-ospath}" />
<arg value="-rf" />
<arg value="${srcdir-ospath}" />
<arg value="-rj" />
<arg value="${external-libs-ospath}" />
<arg value="-rj" />
<arg value="${junit-path}" />
<arg value="-nf" />
<arg value="${native-libs-ospath}" />
</exec>
</target>
现在,我们可以分别构建这两个项目。最后一步是向 root/build.xml 添加一个新目标,它将构建和部署项目和测试并执行测试。为此,将以下目标添加到 root/build.xml:
<target name="tests" depends="reinstall">
<echo>Building and installing tests..</echo>
<exec executable="ant" failonerror="true">
<arg value="-f" />
<arg value="tests/build.xml" />
<arg value="reinstall"/>
</exec>
<mkdir dir="${log-dir}" />
<exec executable="${adb}">
<arg value="shell" />
<arg value="am" />
<arg value="instrument" />
<arg value="-w" />
<arg value="-e" />
<arg value="class" />
<arg value="org.yourproject.AllTests" />
<arg value="org.yourproject.tests/android.test.InstrumentationTestRunner" />
</exec>
</target>
一切就绪后,启动模拟器,然后运行“ant 测试”。这将在一个命令中构建、部署和执行您的测试。