2015-01-19 10 views
8

Seguito del post del blog di Ned Batchelder Coverage.py for Django templates e del plug-in django_coverage_plugin per la misurazione della copertura del codice dei modelli Django.Copertura del codice per i modelli jinja2 in Django

Mi piacerebbe molto vedere i report di copertura dei modelli, ma il problema è che abbiamo sostituito il motore di template di Django con jinja2 tramite coffin adapter. So che non è raccomandato, ma abbiamo avuto delle ragioni. In sostanza, invece di render_to_response() di Django stiamo usando:

from coffin.shortcuts import render_to_response 

Attualmente, stiamo usando django-coverage s' test_coverage command per eseguire i test con una copertura:

python manage.py test_coverage project_name 

Capisco che l'installazione non è comune. Ma è possibile raccogliere le metriche di copertura del codice per i modelli jinja2 con coverage.py? In caso contrario, apprezzerei qualsiasi idea su come creare un plug-in simile a django_coverage_plugin, ma per jinja2.

+2

perché si chiederà qui invece di mandarmi una e-mail come ho detto nel post del blog? :) –

+4

@NedBatchelder perché so che sei in giro e noterei il post :) Inoltre questo potrebbe essere utile per gli altri. – alecxe

risposta

10

Il supporto del plugin in coverage.py è ancora in uno stato alfa. Ho implementato il supporto per i modelli Django e metà del supporto Mako. Un plugin Jinja sarebbe apprezzato. Potrebbe essere necessario apportare modifiche a Jinja per rendere fattibile, in particolare, mappare l'esecuzione del codice Python compilato ai numeri di linea del modello.

Se si vuole iniziare a lavorare su di esso, leggere le interfacce in plugin.py nella fonte coverage.py (eventualmente scriverò documenti veri, ovviamente). La fonte per il plugin Mako potrebbe anche aiutare: https://bitbucket.org/ned/coverage-mako-plugin

Questo probabilmente ci coinvolgerà lavorando insieme per superare le parti difficili. Mandami una mail! :)

Grazie per averlo acceso!

Aggiornamento: Ho scritto alcuni documenti per i plugin, anche se sono necessari ulteriori: http://coverage.readthedocs.org/en/coverage-4.0a4/plugins.html