Результаты покрытия кода Cobertura не завершены - PullRequest
0 голосов
/ 24 июня 2011

Я использую Cobertura для анализа покрытия кода.Если я запускаю сборку в Jenkins, классы в generated содержатся в результате охвата, но охват составляет 0% .Если я запускаю покрытие кода в моей рабочей области (Eclipse), то покрытие намного выше.Покрытие для пакета com.my.package в порядке.Я пропустил некоторые настройки?

Структура моих проектов выглядит следующим образом:

- com
+- com.my
+-- com.my.package
+--- class1.java
+--- class2.java
- generated
+- classX.java
+- classY.java

Моя конфигурация cobertura в POM-файле:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <formats>
                    <format>xml</format>
                </formats>
                <check>
                    <branchRate>0</branchRate>
                    <lineRate>0</lineRate>
                    <haltOnFailure>false</haltOnFailure>
                    <totalBranchRate>0</totalBranchRate>
                    <totalLineRate>0</totalLineRate>
                    <packageLineRate>0</packageLineRate>
                    <packageBranchRate>0</packageBranchRate>
                </check>
                <instrumentation>
                    <excludes>
                        <exclude>**/*Test.class</exclude>
                    </excludes>
                </instrumentation>
            </configuration>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>cobertura</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

1 Ответ

1 голос
/ 24 июня 2011

Сгенерированный код не должен тестироваться и не должен использоваться в показателях покрытия кода. Причина в том, что вам не следует тестировать библиотеку, генерирующую код.

Я никогда не использовал Cobertura сам, но кажется, что вы должны добавить что-то вроде этого:

            <instrumentation>
                <excludes>
                    <exclude>**/*Test.class</exclude>
                    <exclude>generated/*.class</exclude>
                </excludes>
            </instrumentation>
...