2010-09-22 21 views
7

Estoy utilizando el complemento de cobertura de maven para informar la cobertura del código en mi proyecto de multímetro.Complemento de cobertura de Maven: un informe para el proyecto de varios módulos

El problema es que no sé cómo generar un informe para todos los módulos del proyecto.

Hasta ahora he generado informes separados para cada módulo, pero sería bueno tener un informe para todo el proyecto.

Mi padre configuración pom:

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.4</version> 
     <inherited>true</inherited> 
     <executions> 
      <execution> 
       <phase>test-compile</phase> 
       <goals> 
        <goal>clean</goal> 
        <goal>cobertura</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 

Respuesta

2

Que yo sepa, esto no está soportado actualmente, ver MCOBERTURA-65. Pero el problema tiene un parche adjunto, tal vez intentelo. Pero mi sugerencia sería usar algo como Sonar para agregar métricas.

+0

Se admite ahora. Ver mi respuesta – vegemite4me

0

He estado usando Hudson como una herramienta de integración continua. El complemento de Cobertura me permite ver la cobertura del código de todos los módulos secundarios cuando verifico a los padres.

0

El Jenkins Cobertura complemento agrega automáticamente el informe, pero si usted está interesado en el archivo de la cobertura en sí por otras razones que se pueden hacer siguiendo a continuación el procedimiento:

  1. Descargar Cobertura de here

  2. Vaya al área de trabajo de su proyecto -> busque todos los archivos .ser y cámbiele el nombre

    (i=0; find . | grep cobertura.ser$ | while read line;do echo $line; cp -i $line cobertura$i.ser;i=$(($i+1));done;) 
    
  3. uso cobertura-merge.sh para generar archivos global .ser

    ~/cobertura-2.0.3/cobertura-merge.sh --datafile cobertura.ser cobertura*.ser 
    
  4. uso cobertura-report.sh para generar el informe en el archivo .ser mundial

    ~/cobertura-2.0.3/cobertura-report.sh ./cobertura.ser --destination ./ --format xml 
    

Tendrá la coverage.xml global generado en el directorio actual. Puede usarlo para cualquier tipo de procesamiento adicional.

+0

Esto también se puede hacer a través de la línea de comando usando maven: 'mvn cobertura: cobertura -Dcobertura.aggregate = true -Dcobertura.report.format = xml' Puede cambiar el formato del informe como desee. De acuerdo con el repositorio github del plugin de cobertura maven, esta función está disponible [desde v2.5] (https://github.com/mojohaus/cobertura-maven-plugin/blob/master/src/main/java/org /codehaus/mojo/cobertura/CoberturaReportMojo.java#L126) (confirmar [64a8823] (https://github.com/mojohaus/cobertura-maven-plugin/commit/64a8823866b4c8be74a44383162088d616c65185#diff-e4171be1b77f9a9b331e21a0661c1433R126)). – clapsus

16

El complemento se ha actualizado desde que se realizó esta pregunta (y la última vez que se respondió) para ahora habilitar la generación de informes agregados, a través de la propiedad de configuración aggregate en el POM principal.

Esto produce el informe de cobertura agregado en target/site/cobertura/index.html que incluirá todos los módulos.

(Cada módulo también tendrá su propio informe producido, si eso es de alguna utilidad.)

pom.xml Padres

<modules> 
    <module>moduleA</module> 
    <module>moduleB</module> 
    <module>moduleC</module> 
<modules> 
<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <check/> 
        <formats> 
         <format>html</format> 
         <format>xml</format> 
        </formats> 
        <aggregate>true</aggregate> 
       </configuration> 
      </plugin> 
      ... 
    </pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
... 
</build> 
+3

¡Esta debería ser la respuesta aceptada! – MKorsch

+0

¿Debo ejecutar 'mvn cobertura: cobertura -Dcobertura.report.format = xml' commmand en el módulo padre y ¿Generará informe agregado en el módulo padre? – Varun

+0

Ejecuto el comando 'mvn cobertura: cobertura -Dcobertura.report.format = xml' en el paquete principal, agrega los informes de los módulos secundarios pero no muestra la cobertura de una clase en el módulo secundario hijo de este módulo principal, si esa clase es cubierto por la clase del módulo secundario diferente de este módulo principal. – Varun

Cuestiones relacionadas