www píldoras pildorasinformaticas pildora pastillas informáticas informaticas informatica java testing coldfusion code-coverage

java - píldoras - youtube pastillas informaticas



¿Cómo empezar a escribir una herramienta de cobertura de código? (5)

Buscando libros u otras referencias que discutan realmente cómo escribir una herramienta de cobertura de código en Java; algunas de las diversas técnicas o trucos: instrumentación de código fuente vs. byte.

Esto es para un lenguaje de scripting que genera código de bytes Java bajo el capó.


¿Está generando su bytecode en el 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 lo hace 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 su lenguaje de scripting es interpretado, entonces necesitará algo de nivel superior (nivel de fuente) que enganche al intérprete.


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


También es posible que 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.


Si estás hablando de ColdFusion (que supongo que eres de las etiquetas), entonces no estoy seguro de que esto sea factible, pero puedo estar muy equivocado aquí ...

IIRC, cuando CF lo compila esencialmente se compila en una forma interpretada de CFML como un simple archivo de origen java, 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.

Sin embargo, al decir esto, Adobe ya tiene el depurador de CF que puede pasar el código, así que por favor, demuéstrame que estoy equivocado. Me encantaría la cobertura de código en CFML.


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