1. emma taskdef
<!-- Emma configuration -->
<property name="emma.dir" value="${android.sdk.root}/tools/lib" />
<path id="emma.lib.dir">
<pathelement location="${emma.dir}/emma.jar" />
<pathelement location="${emma.dir}/emma_ant.jar" />
</path>
<taskdef resource="emma_ant.properties" classpathref="emma.lib.dir" />
<!-- End of emma configuration -->
2.
<!-- - - - - - - - - - - - - - - - - -
target: emma-instrument
- - - - - - - - - - - - - - - - - -->
<target name="emma.instrument" if="enable.emma.on.test">
<property name="emma.enabled" value="true" />
<echo>Instrumenting classes from ${project.base.dir}/${android.project.dir}/bin,${project.base.dir}/${android.project.dir}/libs/sup-client.jar</echo>
<!-- It only instruments class files, not any external libs -->
<emma enabled="${emma.enabled}">
<instr mode="overwrite"
instrpath="${project.base.dir}/${android.project.dir}/bin,${project.base.dir}/${android.project.dir}/libs/sup-client.jar"
outdir="${project.base.dir}/${android.project.dir}/bin">
</instr>
<!-- TODO: exclusion filters on R*.class and allowing custom exclusion from
user defined file -->
</emma>
<echo>Copy emma. to project libs</echo>
<copy todir="${project.base.dir}/${android.project.dir}/libs" overwrite="true">
<fileset dir="${emma.dir}" includes="emma_device.jar"/>
</copy>
</target>
333
<!-- Convert this project's .class files into .dex files. -->
<target name="dex" depends="android-javac">
<antcall target="emma.instrument"></antcall>
<condition property="dx.extra.args" value="--no-locals" else="">
<istrue value="${enable.emma.on.test}"/>
</condition>
<echo>Converting compiled files and external libraries into dex file </echo>
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="--dex" />
<arg value="${dx.extra.args}" />
<arg value="--output=${project.base.dir}/${android.project.dir}/bin/classes.dex" />
<arg path="${project.base.dir}/${android.project.dir}/bin" />
<fileset dir="${project.base.dir}/${android.project.dir}/libs">
<include name="**/*.jar"/>
</fileset>
</apply>
</target> 44
<target name="run-tests"
description="Runs tests from the package defined in test.package property">
<property name="reports.dir" value="${reports.out.dir}/reports"/>
<property name="device.reports.dir" value="/data/data/${manifest.package}/files/reports/"/>
<echo>Running tests</echo>
<exec executable="${adb}" failonerror="true">
<arg value="shell" />
<arg value="am" />
<arg value="instrument" />
<arg value="-w" />
<arg value="-e" />
<arg value="coverage" />
<arg value="true" />
<arg value="-e" />
<arg value="coverageFile" />
<arg value="${device.reports.dir}coverage.ec" />
<arg value="-e" />
<arg value="junitOutputDirectory" />
<arg value="${device.reports.dir}" />
<arg value="-e" />
<arg value="junitSplitLevel" />
<arg value="class" />
<arg value="-e" />
<arg value="package" />
<arg value="${test.target.package}" />
<arg value="${manifest.package}/${test.runner}" />
</exec>
<echo>Downloading XML test reports</echo>
<mkdir dir="${reports.dir}"/>
<exec executable="${adb}" failonerror="true">
<arg value="pull" />
<arg value="${device.reports.dir}/" />
<arg value="${reports.dir}" />
</exec>
<exec executable="${adb}" failonerror="true">
<arg value="pull" />
<arg value="${device.reports.dir}/" />
<arg value="${reports.dir}" />
</exec>
</target> 555
<antcall target="reinstall">
<param name="android.project.dir" value="end2end_rdb_mbs"/>
<param name="android.app.name" value="end2end_rdb_mbs"/>
<param name="project.base.dir" value="${project.home}/android_mbs"/>
<param name="enable.emma.on.test" value="true"/>
</antcall>
666
<antcall target="run-tests">
<param name="android.project.dir" value="end2end_rdb_mbs"/>
<param name="android.app.name" value="end2end_rdb_mbs"/>
<param name="project.base.dir" value="${project.home}/android_mbs"/>
<param name="manifest.package" value="end2end.test"/>
<param name="test.target.package" value="end2end.test.rest.mbs.android"/>
<param name="test.runner" value="pl.polidea.instrumentation.PolideaInstrumentationTestRunner"/>
<param name="enable.emma.on.test" value="true"/>
</antcall>