Cobertura
Cobertura es una herramienta de Java libre para calcular el porcentaje de código accedido por las pruebas. Puede ser usada para identificar cuales partes de su código Java carece de cobertura de pruebas. Se basa en JCoverage.
Características
- Se puede ejecutar desde Ant o desde linea de comando.
- Instrumenta los bytecode de Java después que este ha sido compilado.
- Puede generar reportes en HTML or XML.
- Muestra el porcentaje de líneas y ramas cubiertas de cada clase, cada paquete, y en todo el proyecto.
- Muestra el McCabe Complejidad Ciclomatica de cada clase, y el promedio de la Complejidad Ciclomatica para cada paquete y para todo el producto.
- Puede ordenar los resultados en HTML por nombre de clase, porcentaje de líneas cubiertas, porcentaje de ramas cubiertas, etc. Y puede ordenar en forma ascendente o descendente.
Bug con JDK 1.6
Trabajando con la versión 1.8 de Cobertura y JDK 1.6 nos encontramos con el problema de escribir los datos de cobertura [(java.lang.IllegalStateException: Shutdown in progress) ], que se resuelve con la version 1.9.2. Por ahora, seguimos con 1.8 y JDK 1.5. Seguramente, en breve nos pongamos con la última versión estable de Cobertura.
Enconding
A partir de la versión 1.9 de cobertura se asume que todos los archivos java fueron guardados con el formato de codificación de caracteres UTF-8, en vez de usar la cofidicación por default de la computadora donde está corriendo cobertura. Además permite modificar dicho comportamiento, permitiendo configurar el formato de codificación que se desea según el api de Charset Esa configuación se setea en la tarea ant cobertura-report mediante el nuevo atributo "enconding" del tag cobertura-report como figura en el siguiente ejemplo:
<cobertura-report format="html" destdir="${coveragereport.dir}" srcdir="${src.dir}" encoding="ISO-8859-1" />