no sé de una gran manera de ejecutar las pruebas de forma automática desde Eclipse, pero he juntado un método directo y de forma automática la construcción y el despliegue de las pruebas usando hormiga
Mi proyecto se organiza de la siguiente manera:
- Vamos a llamar a la raíz del proyecto directorio raíz
- interior, tengo el build.xml generada por el script activityCreator en el SDK.
- que tienen un segundo proyecto que contiene mis pruebas se encuentra en la raíz/pruebas
- Este proyecto tiene su propio AndroidManifest.xml (ver la estructura de la Android API Demos como ejemplo)
- Este proyecto también tiene su propia construcción .xml
con el fin de apoyar junit en la raíz/pruebas/build.xml, es necesario agregar la ruta a JUnit. Una forma de hacerlo es agregar la ruta a los objetivos de compilación, dex, depuración y lanzamiento (la versión se omite, pero necesita el mismo cambio que la depuración). También en el objetivo de compilación incluimos el camino ../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>
Ahora, podemos construir ambos proyectos por separado. El toque final es agregar un nuevo objetivo a root/build.xml que construirá y desplegará el proyecto y probará y ejecutará las pruebas. Para hacer esto añada el siguiente objetivo de la raíz/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>
Una vez que esto es todo en su lugar, iniciar el emulador, y ejecutar "pruebas de hormigas". Esto construirá, implementará y ejecutará sus pruebas en un solo comando.
Esto es exactamente lo que necesito pero estoy intentando descubrir cómo integrar esto con el robotium ... ¿Tiene un ejemplo con eso? Soy un novato en hormiga pero necesito hacer esto para poder integrarme con Hudson y completar todo el ciclo de pruebas automatizadas. –