10

He estado usando el plugin Cobertura para la generación de informes y la instrumentación (con surefire). Este es el problema al que me enfrento:Ignorando la generación de informes para clases específicas en el plugin cobertura maven

No puedo hacer que el complemento ignore la generación de informes para clases específicas en mi proyecto.

PF debajo del extracto relacionado de pom.xml, he agregado la etiqueta de ignorar, pero eso simplemente ignora la instrumentación para las clases ignoradas.

Quiero que el informe para proyectos específicos no se genere en absoluto.

En primer lugar, debido a mi conocimiento limitado de Maven y Conberture, quiero saber si es posible, y si es así, ¿cuáles son los cambios que debo hacer en 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> 

Editar:

Esta mi estructura de directorios:

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

He intentado lo siguiente en el módulo/pom.xml

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

Todavía obtengo los informes generados tanto en las alertas como en el directorio de la compañía.

Probablemente la exclusión de expresiones regulares no es correcta?

Respuesta

4

Cobertura plugin de Maven no respeta la exclusión y haciendo caso omiso de informe generation.It lo hace para la instrumentación aunque. informó

Error conocido en: http://jira.codehaus.org/browse/MCOBERTURA-52

+0

Estoy investigando este tema yo mismo. Y es tremendamente molesto porque tengo mucha cobertura que no se ignora. ¿Alguna idea de soluciones? –

+1

La única solución posible que tengo hasta ahora es, incluido el complemento en los POM secundarios, para los niños que desea que se genere el informe. Aparte de eso, no hay otra manera factible de hacerlo AFAIK. – Neeraj

+1

Este error se ha corregido recientemente en la versión 2.5.2 del plugin de cobertura maven – Ben

1

El uso no incluye i.o. ignora
Así es como me excluyo clases específicas de 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,
Stijn

+0

pretendía que too.It no parece excluir en absoluto. Actualizando mi publicación para incluir los cambios que intenté. – Neeraj

+0

¿Intentó especificar la versión del complemento? –

+0

No. ¿Eso debería marcar la diferencia? – Neeraj

4

Puede exclude clases de su informe de Cobertura moviendo el bloque <plugin> del bloque <reporting> a su bloque <build> en su pom.xml.

3

tuve un problema similar y se encontró un tutorial muy útil: http://www.java-tutorial.ch/software-testing/maven-cobertura

La solución es bastante cerca de la respuesta que rdvdijk publicada. La información del complemento debe estar en la sección de creación, así como en la sección de informes. Pero la información de exclusión debe colocarse en la sección de compilación del pom.

+0

para obtener más información sobre todo lo que publica en un enlace externo. –

0

Pude generar un informe de cobertura de cobertura al ignorar * los archivos de prueba del proyecto después de cambiar la versión de cobertura-maven-plugin de 2.6 a 2.4 (como lo mencionó Stjin geukens en los comentarios anteriores).

Por favor, encontrar los detalles completos experto plugins siguientes:

  <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> 

PS: No estoy seguro de cuál es el problema con 2.6 versión del plugin

Cuestiones relacionadas