2012-03-23 42 views
5

Tengo una aplicación web implementada en Tomcat. Antes de entrar en más detalles déjame explicar las versiones.jacoco + tomcat = jacoco.exec, reportando cero cobertura. Ayuda.

Versiones: JDK 1.7, Tomcat - 7.0.19, jacoco -0.5.6

He añadido jdk1.7 a Tomcat. En el archivo \ apache-tomcat-7.0.19 \ bin \ startup.bat que he agregado.

SET JAVA_HOME=C:\ProgramFiles\Java\jdk1.7.0 

También he agregado jacoco agent a Tomcat. En apache-tomcat-7.0.19 \ bin \ catalina.bat he agregado.

SET JACOCO=-javaagent:<my download folder>\jacoco-0.5.6.2012\lib\jacocoagent.jar=destfile=C:\jacoco.exec,append=true,includes=* 
set JAVA_OPTS=%JAVA_OPTS% %JACOCO% 

Ahora, cuando un incendio Tomcat, y golpeó mis aplicaciones web, como era de esperar no es un archivo C: \ jacoco.exec.

ahora se han trasladado el código a la siguiente estructura de directorios jacoco.exec /bin/ /coveragereport

Ahora he utilizado el ReportGenerator clase de http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java. Tengo un montón de informes en formato HTML en el directorio/coveragereport. Sin embargo, todo el código se muestra como no tocado. Aunque después de haber activado Tomcat había ido al http://localhost:/y navegué por ahí. Esperaba obtener un porcentaje de cobertura informado.

Me falta algo muy básico. Ayuda por favor.

Respuesta

8

Tomcat escribirá el archivo Jacoco al apagar.

5

Alternativamente, puede utilizar el ant dump task:

jacoco:dump address="server.example.com" reset="true" destfile="remote.exec"/> 

Sin embargo, para que funcione, tiene que especificar el output mode tcpserver para la java agent.

-javaagent:[yourpath/]jacocoagent.jar=output=tcpserver,address=<host>,port=<port>,... 
+0

Estoy tratando de usar la forma sugerida (tcpserver), estoy usando JAcoco 0.6.2+. No veo ningún servidor vinculado al puerto predeterminado 6300. Cuando ejecuto el comando de volcado, obtengo "No se puede volcar datos de cobertura", con "Conexión rechazada", porque no hay nada ejecutándose en ese puerto. ¿Es un error o me estoy perdiendo algo? –

+0

@MarcellodeSales también estoy enfrentando este problema ... ¿dónde podría confundirme? –

+0

@MarcellodeSales hace mucho tiempo, pero es crucial tener output = tcpserver definido. y tal vez establezca sus propios puertos a través de la dirección = , puerto = oers

1

6300 es un puerto predeterminado proporcionado. Puede cambiar el puerto o puede buscar los puertos libres que se pueden escuchar usando netstat -an | grep "LISTEN"

Cuestiones relacionadas