2012-03-08 10 views
20

¿Hay alguna manera de generar un informe que contenga la cobertura del código en mi suite de pruebas de django para las plantillas de mi sitio? Ya tengo cobertura para python, pero la cobertura de las plantillas para identificar el código de la plantilla no probada o sin procesar sería increíble.Cobertura de prueba de la plantilla de Django

Para aclarar: Quiero encontrar líneas en mis plantillas que nunca se ejecutan o emiten durante mi conjunto de pruebas.

+0

django-debug-toolbar [información de la plantilla de capturas] (https://github.com/django-debug-toolbar/django-debug-toolbar/blob/master/debug_toolbar/panels/template.py) tal vez eso inspire tú. – jpic

Respuesta

1

Las plantillas no almacenan ningún tipo de información de número de línea como el código fuente de Python. Lo mejor que puede hacer es aplicar un parche al objeto NodeList para registrar cuántas veces se ha evaluado cada nodo, y luego volver a procesar las plantillas en un modo especial que mostrará qué nodos se evalúan.

EDITAR: He sido corregido.

Las plantillas DO almacenan información del número de línea, pero solo para el inicio de un token. ES DECIR. si tiene un TextNode abarca varias líneas, tendrá que manejarlo usted mismo. Hay un código interesante en django.templates.debug que puede ser útil para construir dicho reportero de cobertura.

+1

¿No obtiene un número de línea en los errores de plantilla? – jterrace

0

No creo que pueda obtener información de cobertura de las plantillas, pero puede averiguar qué plantillas se representan conectando el template_rendered signal. Su receptor almacenaría los nombres de las plantillas renderizadas.

Entonces, podría encontrar fácilmente qué plantillas son no representadas con el comando find.

Cuestiones relacionadas