Игнорирование генерации отчетов для определенных классов в плагине cobertura maven - PullRequest
10 голосов
/ 07 марта 2011

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

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

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

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

Во-первых, из-за моих ограниченных знаний о 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

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

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

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

Возможно, исключающее регулярное выражение неверно?

Ответы [ 5 ]

4 голосов
/ 15 марта 2011

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

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

4 голосов
/ 18 октября 2011

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

3 голосов
/ 28 декабря 2012

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

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

1 голос
/ 07 марта 2011

Использование исключает 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
Стейн

0 голосов
/ 01 сентября 2015

Я мог бы успешно сгенерировать отчет о покрытии 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

...