• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8"?>
2<project name="Android Mock" default="all-tests" basedir=".">
3  <description>
4Android Mock is a wrapper for EasyMock (2.4) which allows for real Class mocking on
5an Android (Dalvik) VM.
6
7All methods on Android Mock are syntactically equivalent to EasyMock method
8calls, and will delegate calls to EasyMock, while performing the required
9transformations to avoid Dalvik VM troubles.
10
11Calls directly to EasyMock will work correctly only if the Class being mocked
12is in fact an Interface. Calls to Android Mock will work correctly for both
13Interfaces and concrete Classes.
14
15Android Mock requires that the code being mocked be instrumented prior to
16loading to the Dalvik VM by having called the MockGenerator.jar file. Try
17running java -jar MockGenerator.jar --help for more information.
18  </description>
19
20  <!-- Global Build Properties -->
21  <property file="build.properties"/>
22
23  <!-- Imports -->
24  <import file="src/build-runtime.xml"/>
25  <import file="src/build-mockgen.xml"/>
26  <import file="src/build-framework-gen.xml"/>
27
28  <!-- Android Mock Source Jar Properties -->
29  <property name="source-bin" value="bin/source"/>
30  <property name="source-lib-jar" value="AndroidMock-src.jar"/>
31
32  <!-- Android Mock Test Properties -->
33  <property name="junit-jar" value="junit.jar"/>
34  <property name="test-bin" value="bin/tests"/>
35  <property name="test-results-folder" value="${test-bin}/results"/>
36  <property name="test-source-base" value="tests"/>
37
38  <!-- Classpaths -->
39  <path id="tests.path">
40    <pathelement location="${lib-folder}/${easymock-jar}"/>
41    <pathelement location="${lib-folder}/${javassist-jar}"/>
42    <pathelement location="${runtime.bin}/${runtime.deploy-jar}"/>
43    <pathelement location="${mockgen.bin}/${mockgen.deploy-jar}"/>
44    <pathelement location="${lib-folder}/${junit-jar}"/>
45  </path>
46
47  <!-- Private Build Targets -->
48  <target name="-dirs">
49    <mkdir dir="${source-bin}"/>
50    <mkdir dir="${test-bin}"/>
51    <mkdir dir="${staging}"/>
52    <mkdir dir="${test-results-folder}"/>
53  </target>
54
55  <target name="-clean-staging">
56    <delete dir="${staging}"/>
57  </target>
58
59  <!-- Public Build Targets -->
60  <target name="clean" depends="-clean-staging,mockgen.clean,runtime.clean">
61    <delete dir="${source-bin}"/>
62    <delete dir="${framework-mock-staging}"/>
63    <delete dir="${test-results-folder}" failonerror="false"/>
64    <delete dir="${test-bin}" failonerror="false"/>
65  </target>
66
67  <target name="build-dist"
68      depends="mockgen.build-deploy, runtime.build-deploy, build-source-lib"/>
69
70  <target name="build-source-lib" depends="-dirs"
71      description="Builds a jar file containing the Android Mock source files (no dependencies)">
72    <jar destfile="${source-bin}/${source-lib-jar}" basedir="${source-base}" includes="**/*.java"/>
73  </target>
74
75  <!-- Public Test Targets -->
76  <target name="all-tests" depends="-test-base"
77      description="Builds the full distribution package and runs all tests storing results in ${test-results-folder}">
78    <junit printsummary="no" showoutput="no" reloading="false" failureproperty="testsFailed">
79      <formatter type="xml"/>
80      <classpath location="${test-bin}"/>
81      <classpath refid="tests.path"/>
82      <batchtest todir="${test-results-folder}">
83        <fileset dir="${test-bin}">
84          <include name="**/*Test.class"/>
85          <include name="**/*Tests.class"/>
86        </fileset>
87      </batchtest>
88    </junit>
89    <echo>Test Results are available in ${test-results-folder}</echo>
90    <junitreport todir="${test-results-folder}">
91      <fileset dir="${test-results-folder}">
92        <include name="TEST-*.xml"/>
93      </fileset>
94      <report format="frames" todir="${test-results-folder}/html"/>
95    </junitreport>
96    <fail if="testsFailed" message="Tests failed"/>
97  </target>
98
99  <!-- Private Test Targets -->
100  <target name="-test-base" depends="build-dist">
101    <javac destdir="${test-bin}" target="1.5" srcdir="${test-source-base}"
102        debug="true" >
103      <compilerarg value="-proc:none"/>
104      <classpath refid="tests.path"/>
105    </javac>
106  </target>
107
108</project>
109