Я не знаю отличного способа автоматического запуска тестов из Eclipse, но я собрал простой метод автоматического построения и развертывания тестов с использованием ant.
Мой проект организован следующим образом:
- Давайте назовем корневой каталог проекта корневым
- Внутри у меня есть build.xml, сгенерированный скриптом activityCreator в SDK.
- У меня есть второй проект, содержащий мои тесты, расположенный в root / tests
- Этот проект имеет свой собственный AndroidManifest.xml (см. Пример структуры Android API )
- Этот проект также имеет свой собственный build.xml
Для поддержки junit в root / tests / build.xml, вам нужно добавить путь к junit. Один из способов сделать это - добавить путь к целям компиляции, dex, отладки и выпуска (выпуск опущен, но он требует того же изменения, что и отладка). Также в цели компиляции мы включаем путь ../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>
Как только все это будет готово, запустите эмулятор и запустите "тесты муравья" Это создаст, развернет и выполнит ваши тесты в одной команде.