Ответ 1
Плагин Cobertura maven не уважает исключение и игнорирование для генерации отчетов. Это делает это для аппаратуры.
Известная ошибка, о которой сообщалось: http://jira.codehaus.org/browse/MCOBERTURA-52
Я использую плагин 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 неверно?
Плагин Cobertura maven не уважает исключение и игнорирование для генерации отчетов. Это делает это для аппаратуры.
Известная ошибка, о которой сообщалось: http://jira.codehaus.org/browse/MCOBERTURA-52
Вы можете exclude
классы из вашего отчета cobertura, переместив блок <plugin>
из блока <reporting>
в ваш блок <build>
в pom.xml
.
У меня была аналогичная проблема, и я нашел очень полезный учебник: http://www.java-tutorial.ch/software-testing/maven-cobertura
Решение довольно близко к ответу, который отправил rdvdijk. Информация о плагине должна быть в разделе сборки, а также в разделе отчетов. Но информация об исключении должна быть помещена в раздел сборки pom.
Использование исключает 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,
Стейн
Я мог бы с успехом создать отчет о покрытии 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 версии плагина