Проверка тестового шаблона Django
Есть ли способ создать отчет, содержащий покрытие кода в моем наборе тестов django для моих шаблонов сайтов? У меня уже есть покрытие для python, но охват шаблонов для идентификации мертвого или непроверенного кода шаблона был бы потрясающим.
Чтобы уточнить: я хочу найти строки в моих шаблонах, которые никогда не исполняются или не выбрасываются во время моего тестового набора.
Ответы
Ответ 1
Посмотрите инструмент Django Template Coverage: https://github.com/traff/dtcov
Он делает именно то, что вам нужно.
EDIT: покрытие шаблона Django было скомпоновано на cover.py как плагин:
http://nedbatchelder.com/blog/201501/coveragepy_for_django_templates.html
Рекомендуется использовать его вместо исходного проекта.
Ответ 2
Шаблоны не хранят никакой информации о номере линии, как это делает исходный код python. Лучшее, что вы могли бы сделать, это обезьяна заплатить объект NodeList, чтобы записать, сколько раз каждый node был оценен, а затем повторно отобразить шаблоны в специальном режиме, который покажет, какие узлы оцениваются.
EDIT: меня исправили.
Шаблоны DO хранят информацию о номере линии, но только для начала токена. И.Е. если у вас есть несколько строк в TextNode, вам придется самому это обработать. В django.templates.debug есть интересный код, который может быть полезен для построения такого репортера покрытия.
Ответ 3
Я не думаю, что вы можете получить информацию о покрытии из шаблонов, но вы можете узнать, какие шаблоны отображаются, подключив template_rendered signal. Ваш получатель сохранит имена отображаемых шаблонов.
Затем вы можете легко узнать, какие шаблоны не отображаются с помощью команды find.