如何使用Android中的Ant过滤EMMA生成的测试覆盖率报告中的文件
我有一个Android项目,我使用Ant和EMMA正确地生成了测试覆盖率报告(我是按照这里的说明完成的:) 我想知道的是如何过滤EMMA生成的报告中出现的文件(例如,R生成的类、已测试库中的文件…) 我在自己的build.xml文件中包括了${sdk.dir}/tools/ant/test_rules.xml和${sdk.dir}/tools/ant/main_rules.xml,并尝试将“-emma instrument”目标更改为:如何使用Android中的Ant过滤EMMA生成的测试覆盖率报告中的文件,android,ant,code-coverage,emma,Android,Ant,Code Coverage,Emma,我有一个Android项目,我使用Ant和EMMA正确地生成了测试覆盖率报告(我是按照这里的说明完成的:) 我想知道的是如何过滤EMMA生成的报告中出现的文件(例如,R生成的类、已测试库中的文件…) 我在自己的build.xml文件中包括了${sdk.dir}/tools/ant/test_rules.xml和${sdk.dir}/tools/ant/main_rules.xml,并尝试将“-emma instrument”目标更改为: <target name="-emma-instru
<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="${verbosity}"
mode="overwrite"
instrpath="${out.absolute.dir}/classes"
outdir="${out.absolute.dir}/classes">
<filter excludes="*R*" />
</instr>
<!-- TODO: exclusion filters on R*.class and allowing custom exclusion from
user defined file -->
</emma>
</target>
正在检测${out.absolute.dir}/classes中的类。。。
我还尝试应用此处指定的EMMA coverage筛选器的另一个变体,但这也不起作用,并且R生成的文件仍然显示在coverage报告中
有人知道如何解决这个问题吗?更新:从android SDK的r18版本开始,过滤就内置了,请看我对链接问题的回答 有人在问这个问题,你已经走了一半路了。要解决您的问题,请确保您不修改测试项目生成文件,而是修改目标项目的生成文件。我真的不知道android应用程序构建文件中涉及到什么样的ant魔法,但当然在某种程度上,你的目标项目构建文件必须扮演一个重要的角色,所以你必须在目标项目中指定覆盖范围修改,这是合乎逻辑的 我花了整整一个上午来整理这件事,所以我希望它对其他开发人员有一些价值
作为旁注,此功能应该是SDK工具的一部分。谢谢您的回答。我在testbuild.xml上设置了过滤器。