2012-03-08 3 views
20

내 사이트 템플릿 용 Django 테스트 스위트에서 코드 커버리지를 포함하는 보고서를 만들 수있는 방법이 있습니까? 나는 이미 파이썬에 대한 적용 범위를 가지고 있지만, 죽은 또는 테스트되지 않은 템플릿 코드를 식별하기위한 템플릿 범위는 굉장합니다.Django 템플릿 테스트 커버리지

명확히하기 : 내 테스트 스위트에서 실행되거나 방출되지 않는 템플릿을 내 템플릿에서 찾으려고합니다.

+0

django-debug-toolbar [템플릿 정보 잡기] (https://github.com/django-debug-toolbar/django-debug-toolbar/blob/master/debug_toolbar/panels/template.py) 어쩌면 저에게 영감을 줄 수 있습니다. 당신. – jpic

답변

1

템플릿에는 파이썬 소스 코드처럼 줄 번호 정보가 저장되지 않습니다. 당신이 할 수있는 최선의 방법은 NodeList 객체를 원숭이 패치하여 각 노드가 평가 된 횟수를 기록한 다음 평가할 노드를 보여주는 특수 모드로 템플릿을 다시 렌더링하는 것입니다.

수정 : 수정되었습니다.

템플릿 DO는 줄 번호 정보를 저장하지만 토큰의 시작 부분에만 저장합니다. I.E. TextNode가 여러 줄에 걸쳐 있다면, 직접 처리해야합니다. django.templates.debug에는 이러한 커버리지 리포터를 만드는 데 유용한 몇 가지 흥미로운 코드가 있습니다.

+1

템플릿 오류에서 줄 번호를 가져 오지 않습니까? – jterrace

0

템플릿에서 커버리지 정보를 얻을 수 있다고 생각하지 않지만 template_rendered signal을 연결하여 어떤 템플릿이 렌더링되는지 확인할 수 있습니다. 수신자는 렌더링 된 템플리트의 이름을 저장합니다.

그런 다음 이 아닌 템플릿을 찾기 명령으로으로 쉽게 찾을 수 있습니다.