Advertising:
Cobertura de los test
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.