Pregunta

Mi entorno de compilación está configurado para compilar, ejecutar y crear un archivo de cobertura en la línea de comandos (usando la herramienta Ned Batchelder coverage.py).

Estoy usando Eclipse con PyDev como mi editor, pero por razones prácticas, no es posible / conveniente para mí convertir todo mi entorno de compilación a Eclipse (y así generar los datos de cobertura directamente desde el IDE, ya que está diseñado para hacer)

PyDev parece estar usando la misma herramienta de cobertura (o algo muy similar) para generar su información de cobertura, por lo que supongo que debería haber alguna forma de integrar mis archivos de cobertura externa en Eclipse / PyDev.

¿Alguna idea sobre cómo hacer esto?

¿Fue útil?

Solución

Necesitaba exactamente algo como esto hace algún tiempo, cuando PyDev todavía usaba una versión anterior de coverage.py que la accesible desde la página del creador del script.

Lo que hice fue detectar dónde PyDev estaba guardando su archivo .coverage . Para mí fue:

 C:\Users\Admin\workspace\.metadata\.plugins\org.python.pydev.debug\.coverage

Luego ejecuté manualmente una nueva versión de coverage.py desde un script separado y le dije que guardara su archivo .coverage en el lugar donde PyDev guarda su archivo. No recuerdo si hay un argumento de línea de comandos para coverage.py o si simplemente copié el archivo .coverage con un script, pero después de eso, si simplemente abres la Vista de resultados de cobertura de código y haga clic en Actualizar información de cobertura , PyDev procesará muy bien los datos como si generara el archivo.

Otros consejos

No sé nada sobre la integración de PyDev de la cobertura.py (o si incluso usa la cobertura.py), pero los archivos .coverage son bastante simples. Son diccionarios marhsal'ed.

No he probado este código, pero puedes intentarlo para combinar dos archivos .coverage en uno:

import marshal
c1_dict = marshal.load(open(file_name_1, 'rb'))
c2_dict = marshal.load(open(file_name_2, 'rb'))
c1_dict.update(c2_dict)
marshal.dump(c1_dict, open(file_name_out, 'wb'))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top