Advertising:

Cobertura de los test

From ChuWiki
Jump to navigation Jump to search

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[edit]