cobertura-instrument вроде не исключает классы из баночки

Я новичок в cobertura, и я использую муравей непосредственно для инструментовки банок.

build.xml выглядит так:

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

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

The inclusion/exclusion doesnt seem to work at all as it is instrumenting all the classes.Can anyone tell me what i am doing wrong?


person sarathrami    schedule 19.03.2012    source источник


Ответы (1)


В документации указано, что это можно сделать двумя способами.

Комбинация оператора 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>

Я бы предпочел первый подход, поскольку он кажется более стандартным.

person Mark O'Connor    schedule 19.03.2012
comment
Я предполагаю, что ${classes.dir} - это расположение файлов классов, но у меня нет извлеченных файлов. У меня есть только банки, и я хочу включить в него некоторые классы и исключить другие. Как мне это сделать? - person sarathrami; 20.03.2012
comment
@Rami В первом примере выше есть такой пример. Второй набор файлов — это выбор jar для инструмента, который называется my-simple-plugin.jar. - person Mark O'Connor; 20.03.2012
comment
Спасибо, Марк, оба подхода работают хорошо. Оболочка службы Windows, которую я использую для своего приложения, использовалась для уничтожения приложения Java при остановке службы, что повлияло на потерю данных, и я получил покрытие 0%. - person sarathrami; 22.03.2012