It is old, but hopefully it helps someone else. I did this recently ... robolectric, mockito, Jenkins and ant. Here is the ant build script that I am running. Basically, you just need to configure the path to your libraries and set up a goal to run the test. I also copy the android.jar file and the maps.jar file in the lib folder of the test project, this seems to make life easier, but maybe you can do it better.
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project name="unit_tests" default="test-report-junit" basedir="."> <description> Sample Robolectric Ant Build </description> <property name="libs.dir" value="./lib/"/> <property name="build.dir" value="./build/"/> <property name="android.library1.classpath" value="./../../library1/bin/classes/"/> <property name="android.library2.classpath" value="./../../library2/bin/classes/"/> <property name="android.library3.classpath" value="./../../library3/bin/classes/"/> <property name="test.report.dir" value="./test-reports/"/> <property name="test.html.dir" value="./test-report-html/"/> <property name="source.dir" value="./src/"/> <filelist id="android_jars" dir="${libs.dir}"> <file name="android.jar"/> <file name="maps.jar"/> </filelist> <filelist id="libs_jars" dir="${libs.dir}"> <file name="junit.jar"/> <file name="hamcrest.jar"/> <file name="json.jar"/> <file name="google-play-services.jar"/> <file name="mockito-all-1.9.5.jar"/> <file name="robolectric-1.1-jar-with-dependencies.jar"/> </filelist> <path id="compile_classpath"> <filelist refid="libs_jars"/> <filelist refid="android_jars"/> <pathelement path="${android.project.classpath}"/> <pathelement path="${android.library1.classpath}"/> <pathelement path="${android.library2.classpath}"/> <pathelement path="${android.library3.classpath}"/> <pathelement path="${build.dir}"/> </path> <path id="junit_classpath"> <pathelement path="${build.dir}"/> <pathelement path="${android.library1.classpath}"/> <pathelement path="${android.library2.classpath}"/> <pathelement path="${android.library3.classpath}"/> <filelist refid="libs_jars"/> <filelist refid="android_jars"/> </path> <target name="init"> <tstamp/> <mkdir dir="${build.dir}"/> </target> <target name="compile" depends="init" description="compile test source"> <javac srcdir="${source.dir}" destdir="${build.dir}" debug="true" > <classpath refid="compile_classpath" /> </javac> <copy todir="build"> <fileset dir="src" includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" /> </copy> </target> <target name="test-run" depends="compile" description="Run JUnit tests"> <mkdir dir="${test.report.dir}"/> <echo message="Running JUnit Tests in directory ${source.dir}..."/> <junit showoutput="true" printsummary="yes" failureproperty="junit.failure" fork="yes" forkmode="once" maxmemory="512m"> <formatter type="plain"/> <formatter type="xml"/> <batchtest todir="${test.report.dir}"> <fileset dir="${source.dir}"> <include name="**/*Test.java"/> </fileset> </batchtest> <classpath refid="junit_classpath"/> </junit> <fail if="junit.failure" message="Unit test(s) failed. See reports!"/> </target> <target name="test-report-junit" depends="test-run" description="Generate JUnit HTML reports"> <mkdir dir="${test.html.dir}"/> <junitreport todir="${test.report.dir}"> <fileset dir="${test.report.dir}" includes="TEST-*.xml"/> <report format="frames" todir="${test.html.dir}"/> </junitreport> </target> <target name="clean" description="Clean Up" > <delete dir="${build.dir}"/> <delete dir="${test.report.dir}"/> <delete dir="${test.html.dir}"/> <delete file="${basedir}/tmp/cached-robolectric-classes.jar"/> </target> </project>
Finally, I ran the following command from Jenkins to get started:
ant -f ./build-ant.xml test-report-junit
source share