如何从Emma中删除/过滤/忽略某些包(代码覆盖率)

时间:2009-06-19 02:35:29

标签: java ant filter code-coverage emma

我正在尝试从我的报告中删除一些软件包并遇到问题。

有人能给我一些帮助吗?

我在 ant 进程中使用EMMA。


<!-- Generate the emma report both in xml and html -->
<emma>
  <report
    sourcepath="${build.report.src}"
    metrics="class:${coverage.classes.min},method:${coverage.methods.min}">     <fileset dir="${build.report.junit.data.dir}">
      <include name="*.emma"/>
    </fileset>
    <html outfile="${build.report.reports}/emma/raw.html" depth="method"/>
    <xml outfile="${build.report.tmp}/emma.xml" depth="method"/>
  </report>
</emma>


我试图使用:
<filter excludes="com.my.package.*"/>

没有成功:(

2 个答案:

答案 0 :(得分:10)

Emma允许在 instrumentation 阶段使用过滤器来指定一组需要检测的文件。相反,您正尝试在报告生成阶段执行此操作。 link given above描述了如何定义检测集。

我使用过这样的过滤器:

<property name="emma.filter" value="-*.unittest.* -*.unittests.* -*.TST* -*TestCase -*Test -*TestSuite" />

<emma>
    <instr instrpath="${build.dir}"
        mode="overwrite"
        metadatafile="${build.dir}/coverage.em"
        filter="${emma.filter}" />
</emma>

您还可以使用嵌套&lt; filter&gt; &lt; instr&gt;

下的元素

答案 1 :(得分:0)

我假设您已尝试<{3}}中所有变体...?

如果是这样,我希望你可能有一个错字或类似的东西。你能提供你正在使用的代码吗?那些不起作用的排除语法,以及那个被错误包含的类的源文件的标题?