Подтвердить что ты не робот

Игнорирование генерации отчетов для определенных классов в плагине cobertura maven

Я использую плагин Cobertura для создания отчетов и инструментов (с уверенностью). Вот проблема, с которой я сталкиваюсь:

Я не могу заставить плагин игнорировать создание отчета для определенных классов в моем проекте.

PF ниже связанной выдержки из pom.xml, я добавил тэг ignore, но это просто игнорирует инструментарий для игнорируемых классов.

Я хочу, чтобы отчет для конкретных проектов не генерировался вообще.

Во-первых, из-за моего ограниченного знания как Maven, так и Conberture, я хочу знать, возможно ли это, и если да, то каковы изменения, которые мне нужно сделать в pom.xml.

pom.xml

<report>
    <!-- other plugins exist but are not important to be listed here I guess -->   
    <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <skipTests>false</skipTests>
            <systemProperties>
                <property>
                <name>net.sourceforge.cobertura.datafile</name>
                <value>target/cobertura/cobertura.ser</value>
                </property>
            </systemProperties>
        </configuration>
    </plugin>
    <!-- The following is the plugin for cobertura, which takes care of integration and report generation-->
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <configuration>
            <check>
                <branchRate>50</branchRate>
                <lineRate>50</lineRate>
                <haltOnFailure>true</haltOnFailure>
                <totalBranchRate>50</totalBranchRate>
                <totalLineRate>50</totalLineRate>
                <packageLineRate>50</packageLineRate>
                <packageBranchRate>50</packageBranchRate>
            </check>
            <instrumentation>
                <ignores>
                  <ignore>deshaw.dportal.alert.*</ignore>
                  <ignore>deshaw.dportal.atc.*</ignore>
                  <ignore>deshaw.dportal.basket.*</ignore>
                  <ignore>deshaw.dportal.fcs.*</ignore>
                  <ignore>deshaw.dportal.event.*</ignore>
                  <ignore>deshaw.dportal.filings.*</ignore>
                  <ignore>deshaw.dportal.glg.*</ignore>
                  <ignore>deshaw.dportal.icp.*</ignore>
                </ignores>
            </instrumentation>
        </configuration>
    </plugin>
</report>

Edit:

Эта структура моего каталога:

module
|
|-apps
|    |-alert
|    |    |-src
|    |    |-target
|    |    |-pom.xml
|    |-------------------
|    |-company
|    |    |-src
|    |    |-target
|    |    |-pom.xml
|-----------------------
|-jobs
|    |-job1
|    |    |-src
|    |    |-target
|    |    |-pom.xml
|    |-job2
|    |    |-src
|    |    |-target
|    |    |-pom.xml

Я попробовал следующее в модуле /pom.xml

<instrumentation>
    <excludes>
        <exclude>**/apps/*.*</exclude>
    </excludes>
</instrumentation>

Я все еще получаю отчеты, сгенерированные как в оповещениях, так и в каталоге компании.

Возможно, правильное выражение exclude неверно?

4b9b3361

Ответ 1

Плагин Cobertura maven не уважает исключение и игнорирование для генерации отчетов. Это делает это для аппаратуры.

Известная ошибка, о которой сообщалось: http://jira.codehaus.org/browse/MCOBERTURA-52

Ответ 2

Вы можете exclude классы из вашего отчета cobertura, переместив блок <plugin> из блока <reporting> в ваш блок <build> в pom.xml.

Ответ 3

У меня была аналогичная проблема, и я нашел очень полезный учебник: http://www.java-tutorial.ch/software-testing/maven-cobertura

Решение довольно близко к ответу, который отправил rdvdijk. Информация о плагине должна быть в разделе сборки, а также в разделе отчетов. Но информация об исключении должна быть помещена в раздел сборки pom.

Ответ 4

Использование исключает i.o. игнорирует.
Вот как я исключаю определенные классы из cobertura:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
    <instrumentation>
        <excludes>
            <exclude>com/bnpp/ecom/**/*Test.class</exclude>
            <exclude>com/lrc/web/WicketApplication.class</exclude>
            <exclude>com/lrc/service/HeartBeatWebServiceMock.class</exclude>
        </excludes>
    </instrumentation>
</configuration>

Greetz,
Стейн

Ответ 5

Я мог бы с успехом создать отчет о покрытии cobertura, проигнорировав * тестовые файлы из проекта после изменения версии cobertura-maven-plugin с 2.6 до 2.4 (как упоминалось Stjin geukens в приведенных выше комментариях).

Подробные сведения о плагинах maven см. ниже:

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <instrumentation>
                        <excludes>
                            <exclude>com/services/impl/*Test.class</exclude>
                            <exclude>com/exceptions/*Test.class</exclude>
                            <exclude>com/services/*Test.class</exclude>
                            <exclude>com/utils/*Test.class</exclude>
                        </excludes>
                    </instrumentation>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>cobertura</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

P.S: Я не уверен, в чем проблема с версией 2.6 версии плагина