Cobertura de los test

De ChuWiki
Saltar a: navegación, buscar

Hay un plugin de Maven2 que permite visualizar qué porcentaje de nuestro código han ejecutado los test automáticos de JUnit. Este programa se llama Cobertura y aquí tienes la documentación del plugin Cobertura para Maven

Aquí puedes ver un ejemplo de un informe de Cobertura. Si navegas por el ejemplo hasta una clase, llegarás a ver el código fuente, con verde por donde han pasado los test y en rojo las líneas que no se han ejecutado en el test.

Para obtener el informe de Cobertura, en nuestro fichero pom.xml debemos poner algo como esto

<project>
   ...
   <reporting>
      ...
      <plugins>
         ...
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.0</version>
         </plugin>
         ...
      </plugins>
      ...
   </reporting>
   ...
</project>

Si no ponemos la línea de versión, cogerá la última disponible, la 2.1 en el momento de escribir este tutorial. Sin embargo, esa versión tiene un fallo que nos dará el 100% de cobertura en todo el código, independientemente de que haya o no tests. Por ello, es mejor poner la versión 2.0 que funciona correctamente.

En caso de que tengamos un proyecto con varios subproyectos, aprovechando la Herencia y composición de proyectos de Maven, bastaría con poner esa configuración en el fichero pom.xml del proyecto padre. Sin embargo, Maven no permite que un proyecto padre tenga fuentes java y Cobertura falla de mala manera si no encuentra fuentes. La solución es borrar el directorio java de src/main/java y de src/test/java. Si Cobertura no encuentra el directorio java, no buscará los fuentes y no fallará.

Es decir, debemos configurar el pom.xml del proyecto padre con el plugin de Cobertura y borrar sus directorios src/main/java y src/test/java. En los proyectos hijos no necesitamos hacer nada especial, ni siquiera configurar el plugin de Cobertura en el fichero pom.xml

El comando mvn cobertura:cobertura o mvn site nos generará el informe de cobertura en html dentro del directorio target.


Enlaces externos