2008-10-31 17 views
5

Estoy usando la herramienta EMMA para la cobertura de códigos pero a pesar de mis mejores esfuerzos, EMMA se niega a ver los archivos .java originales y genera cobertura línea por línea .Herramienta de cobertura EMMA que no muestra cobertura línea por línea

Estamos utilizando ANT para construir el código y la depuración se establece en verdadero. Sé que EMMA está midiendo la cobertura, ya que los archivos .emma parecen estar generando y fusionándose correctamente. Los informes pueden presentar una cobertura de método de alto nivel con porcentajes.

¿Pero por qué no ve los archivos .java? Todo lo que consigo es: [archivo fuente 'a/b/c/d/e/f/code.java' no se encuentra en SourcePath]

+0

¿Podría publicar su archivo ANT o la parte donde se generan los informes EMMA? Supongo que hay un error en el 'sourcepath de informe' –

Respuesta

6

Es usted la creación del sourcepath en su elemento report?

<report> 
    <sourcepath> 
     <pathelement path="${java.src.dir}" /> 
    </sourcepath> 
    <fileset dir="data"> 
     <include name="*.emma" /> 
    </fileset> 

    <txt outfile="coverage.txt" /> 
    <html outfile="coverage.html" /> 
</report> 
+0

Phill, me estoy enfrentando con maven :( – Dani

+0

¿Tienes alguna idea de cómo puedo resolver esto? – Dani

2

Podría publicar la porción de su build.xml que genera los informes EMMA? Suena como un problema report sourcepath.

report sourcepath debe apuntar a su fuente java.

Ver sourcepath en la referencia de EMMA. Puede ser una estructura similar a la ruta , por lo que puede incluir varios directorios de origen.

Como siempre, la ANT:

  • ejecutar la más pequeña posible con build.xml -verbose
  • -debug para aún más información.
0

hace {java.src.dir} necesita señalar a un directorio específico src.

Este no es un solo directorio src ya que estoy compilando proyectos múltiples. Cada uno con su propio archivo build.xml.

Creo que esta es la parte que genera todos los informes de cobertura:

<target name="emma.report" if="use.emma"> 
    <emma enabled="true"> 
    <report sourcepath="${test.reports.dir}"> 
     <!-- collect all EMMA data dumps (metadata and runtime): --> 
     <infileset dir="${test.data.dir}" includes="*.emma" /> 
     <html outfile="${test.reports.dir}/coverage.html" /> 
    </report> 
    </emma> 
</target> 

EDIT: He cambiado la SourcePath para que apunte directamente a uno de los directorios src. Ve si eso funciona.

+0

Según tengo entendido, tu fuente de ruta debe apuntar a * todos * sus directorios fuente; de ​​lo contrario, no podrá encontrar los archivos .java. –

1

Me encontré con el mismo problema. Pero descubrí que al configurar Sourcepath necesitamos establecer el único nivel de directorio no en la ubicación del archivo java. es similar al classpath

Cuestiones relacionadas