我知道在构建我的android测试项目时如何在ant中使用emma但是在使用SDK时我找不到有关如何使用过滤器的任何提示。 emma网站在自己调用emma时解释了它,但在Android SDK构建文件中,emma未在ant文件或命令行中调用,因此我无法添加过滤器选项。
有人有什么建议吗?
答案 0 :(得分:10)
从SDK Tools r18开始,您只需添加
即可emma.filter=-com.your.excluded.package.*
到项目的ant.properties(不是测试项目)
答案 1 :(得分:5)
这取决于您使用的SDK版本,特别是<android-sdk>/tools/ant
目录中包含的构建文件。
从SDK r18及更高版本开始,它就像在目标(非测试)项目的ant.properties
文件中添加属性一样简单。例如,使用
emma.filter=-*.test.*
从测试包中排除所有类。您可以在emma documentation中找到emma过滤器语法。
有an issue for this。它涉及以下内容:
-emma-instrument
目标来修改构建文件(您应该在运行{{1}的标准项目构建文件中找到此方法的说明})根据链接问题修改目标,它看起来像:
android create/update project
有关排除过滤器语法的说明,请参见emma documentation
<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>
提供您自己的排除对我来说,这对SDK工具r13来说就像一个魅力。