2008-08-05 11 views

Respuesta

2

Thxm, Mc! http://asm.objectweb.org/es otro. Excelente documentación sobre la instrumentación de código de bytes, pero nada "directamente" destinado a escribir una herramienta de cobertura, solo algunos consejos o ideas.

7

¿Está generando el bytecode del lenguaje de scripting? ¿Genera metadatos de depuración? Si es así, la instrumentación de bytecode es probablemente el camino a seguir. De hecho, las herramientas existentes probablemente funcionarán; quizás con una modificación mínima (el problema típico es que las herramientas están escritas para trabajar con Java y suponer que com.foo.Bar.class corresponde a com/foo/Bar.java. Desenrollar esa suposición puede ser tedioso.) EMMA es un ClassLoader que no funciona Redacción de código de bytes para la recopilación de cobertura de código en Java. El estilo de codificación es un poco raro, pero recomiendo leer la fuente para algunas ideas.

Si se interpreta el lenguaje de scripting, necesitará algo de nivel superior (nivel de fuente) que se enganche en el intérprete.

1

También puede obtener la fuente de una herramienta de cobertura de código de código abierto y aprender de ella.

2

Es posible que también desee utilizar algo como BCEL para analizar qué líneas de origen realmente existen en el código de bytes. No desea informar que cosas como líneas en blanco y comentarios no se han cubierto.

+0

Esto no es una buena idea a menos que los números de línea en BCEL coincidan exactamente con aquellos en el DSL del OP. Si no lo hacen, obtendrá cobertura en las líneas fuente "incorrectas". –

2

Si estás hablando de ColdFusion (que supongo usted es de las etiquetas), entonces no estoy seguro de que esto es factible, pero que puede ser muy mal aquí ...

IIRC, CF Cuando se compila esencialmente se compila en una forma interpretada de CFML como un simple archivo fuente Java antiguo, esto luego se compila en la clase. Por lo tanto, cualquier instrumentación que pueda tener se aplicará a la versión intermedia en lugar de CFML.

Diciendo eso, Adobe tiene ahora el depurador de CF que puede pasar el código, así que por favor, pruébeme mal. Me encantaría la cobertura de código en CFML.

+0

Vea mi respuesta sobre "Cobertura de sucursal para los idiomas arbitrarios que es más fácil". Instrumentar el código CFML directamente y luego compilarlo en Java aún proporcionaría datos de cobertura de prueba directamente para CFML. (Construyo herramientas de cobertura de prueba para ganarse la vida). –

+0

¿De qué se trata todo esto? Cobertura del código Rancho para ColdFusion http://kunalsaini.blogspot.in/2012/05/rancho-code-coverage-tool-for.html –

Cuestiones relacionadas