2012-03-08 20 views
20

Esiste un modo per produrre un report contenente la copertura del codice nella mia suite di test django per i modelli del mio sito? Ho già una copertura per Python, ma la copertura per i modelli per identificare il codice del template morto o non testato sarebbe fantastico.Django Template Test Coverage

Per chiarire: Voglio trovare linee nei miei modelli che non vengono mai eseguite o emesse durante la mia suite di test.

+0

django-debug-toolbar [trova informazioni sul modello] (https://github.com/django-debug-toolbar/django-debug-toolbar/blob/master/debug_toolbar/panels/template.py) forse che ispirerebbe tu. – jpic

risposta

1

I modelli non memorizzano alcun tipo di informazione sul numero di riga come fa il codice sorgente Python. La cosa migliore da fare è eseguire il patch della scimmia nell'oggetto NodeList per registrare quante volte è stato valutato ciascun nodo, quindi eseguire nuovamente il rendering dei modelli in una modalità speciale che mostrerà quali nodi vengono valutati.

EDIT: Sono stato corretto.

Modelli DO informazioni sul numero di riga del negozio, ma solo per l'inizio di un token. OSSIA se hai un TextNode su più righe, dovrai gestirlo tu stesso. C'è qualche codice interessante in django.templates.debug che può essere utile per costruire un reporter di copertura.

+1

Non si ottiene un numero di riga negli errori del modello? – jterrace

0

Non penso che sia possibile ottenere informazioni sulla copertura dai modelli, ma è possibile scoprire quali modelli sono resi mediante il collegamento dello template_rendered signal. Il tuo ricevitore memorizzerebbe i nomi dei modelli renderizzati.

Quindi, è possibile scoprire facilmente quali modelli sono non resi con il comando find.