Django 中 jinja2 模板的代码覆盖率

Code coverage for jinja2 templates in Django

遵循 Ned Batchelder 的 Coverage.py for Django templates blog post and the django_coverage_plugin 插件,用于测量 Django 模板的代码覆盖率。

我真的很想看看模板覆盖率报告,但问题是 - 我们已经通过 coffin adapter 将 Django 的模板引擎替换为 jinja2。我知道不推荐,但我们有理由。基本上,我们使用的不是 Django 的 render_to_response()

from coffin.shortcuts import render_to_response

目前,我们正在使用 django-coverage's test_coverage command 到 运行 测试覆盖率:

python manage.py test_coverage project_name

据我所知,该设置并不常见。但是,是否可以使用 coverage.py 收集 jinja2 模板的代码覆盖率指标?如果没有,我将不胜感激关于制作类似于 django_coverage_plugin 的插件的任何想法,但对于 jinja2.

coverage.py 中的插件支持仍处于 alpha 状态。我已经实现了 Django 模板支持和一半的 Mako 支持。 Jinja 插件将不胜感激。它可能需要在 Jinja 中进行更改以使其可行,特别是将编译后的 Python 代码执行映射回模板行号。

如果您想开始使用它,请阅读 coverage.py 源代码中 plugin.py 中的接口(当然,我最终会编写真正的文档)。 Mako 插件的来源也可能有帮助:https://bitbucket.org/ned/coverage-mako-plugin

这可能需要我们共同努力克服困难。给我发电子邮件! :)

感谢您的参与!

更新:我已经为插件编写了一些文档,但还需要更多:http://coverage.readthedocs.org/en/coverage-4.0a4/plugins.html