Cobertura Instrumentation - PullRequest
       19

Cobertura Instrumentation

3 голосов
/ 07 марта 2012

Я пытаюсь заставить Кобертуру работать с моей сборкой Ant, и, в частности, просто хочу, чтобы она предоставила мне отчет о покрытии моих модульных тестов.Я использую следующую структуру каталогов:

src/main/java --> main source root
src/test/java --> test source root
bin/main --> where main source compiles to
bin/test --> where test source compiles to
gen/cobertura --> cobertura root
gen/cobertura/instrumented --> where "instrumented" class will be copied to

Я понимаю Cobertura (, и, пожалуйста, исправьте меня, если я ошибаюсь !! ), что он добавляет байт-код к скомпилированным классам (aka «Instrumentation»), а затем запускает отчеты на основе этого введенного / тканого байт-кода.

Поэтому мой вопрос: если Cobertura изменит байт-код классов, которые он использует, я должен запустить JUnit на моих тестовых источникахдо <cobertura:instrument> или после и почему?

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Вы правы, что Cobertura использует байт-код ваших скомпилированных классов. Обычно вы хотите исключить источники тестов из анализа покрытия, так как классы тестирования являются факторами, которые генерируют покрытие. Базовый пример build.xml, предоставляемый с Cobertura, дает хороший пример, когда он вызывает cobertura-instrument:

        <cobertura-instrument todir="${instrumented.dir}">
        <!--
            The following line causes instrument to ignore any
            source line containing a reference to log4j, for the
            purposes of coverage reporting.
        -->
        <ignore regex="org.apache.log4j.*" />

        <fileset dir="${classes.dir}">
            <!--
                Instrument all the application classes, but
                don't instrument the test classes.
            -->
            <include name="**/*.class" />
            <exclude name="**/*Test.class" />
        </fileset>
    </cobertura-instrument>
</target>

Элемент exclude здесь исключает из инструментария все классы с «Test» в их именах.

0 голосов
/ 08 марта 2012

Вот рабочий пример того, как задачи Cobertura ANT используются совместно с Junit для создания отчета о покрытии кода

SONAR - Измерение покрытия кода с использованием Cobertura

...