cobertura-instrument似乎没有从jar中排除类

时间:2012-03-19 13:46:43

标签: regex ant cobertura

我是cobertura的新手,我正在使用蚂蚁直接测量罐子。

build.xml如下所示:

    <cobertura-instrument   datafile="${jboss.dir}\cobertura.ser" >
<includeClasses regex=".*A.*"/>
<excludeClasses regex=".*B.*"/>

<fileset dir="${lib.dir}"> 
    <include name="*.jar"/>
</fileset>

包含/排除似乎根本不起作用,因为它正在检测所有课程。任何人都可以告诉我我做错了什么?

1 个答案:

答案 0 :(得分:2)

documentation表示有两种方法可以做到这一点。

带有限文件集的ignore语句的组合:

<delete file="cobertura.ser" />

<cobertura-instrument todir="${instrumented.dir}">
    <ignore regex="org.apache.log4j.*" />
    <fileset dir="${classes.dir}">
        <include name="**/*.class" />
        <exclude name="**/*Test.class" />
    </fileset>
    <fileset dir="${jars.dir}">
        <include name="my-simple-plugin.jar" />
    </fileset>
</cobertura-instrument>

或者,带有排除项的检测类路径:

<delete file="cobertura.ser" />

<cobertura-instrument todir="${instrumented.dir}">
    <includeClasses regex=".*" />
    <excludeClasses regex=".*\.Test.*" />

    <instrumentationClasspath>
        <path refid="test.classpath" />
        <pathelement location="${test.build}" />
    </instrumentationClasspath>
</cobertura-instrument>

我赞成第一种方法,因为它似乎是一种更标准的方法。