I know how to use emma in ant when building my android test project but I can't find any tips on how to use filters when using the SDK. The emma website explains it when calling emma yourself but in the Android SDK build files emma is not called in the ant files or on the commandline so I'm not able to add the filter options.
Anyone any suggestions?
As of SDK Tools r18 you can simply add
emma.filter=-com.your.excluded.package.*
to the ant.properties of your project (not Test project)
It depends on the SDK version you are using, specifically the included build files found in <android-sdk>/tools/ant
directory.
As of the SDK r18 and above it's as simple as adding a property to your ant.properties
file of the target (not test) project. So for example use
emma.filter=-*.test.*
To exlude all classes from a test package. You can find the emma filter syntax in the emma documentation.
There's an issue for this. It involves the following:
-emma-instrument
target from the imported android build files (you should find an explanation of this method in the standard project build file which you get by running android create/update project
)modify the target according to the linked issue, it'll look like:
<target name="-emma-instrument" depends="compile">
<echo>Instrumenting classes from ${out.absolute.dir}/classes...</echo>
<!-- It only instruments class files, not any external libs -->
<emma enabled="true">
<instr verbosity="trace1"
mode="overwrite"
instrpath="${out.absolute.dir}/classes"
outdir="${out.absolute.dir}/classes">
<filter excludes="*.R,*.R$$*,${emma.exclusion.pattern}" />
</instr>
<!-- TODO: exclusion filters on R*.class and allowing custom exclusion from
user defined file -->
</emma>
</target>
an explanation of the exclusion filter syntax is available on the emma documentation
emma.exclusion.pattern
to provide your own exclusionsFor me this has worked like a charm on SDK tools r13.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With