Django中jinja2模板的代码覆盖率

时间:2015-01-19 22:15:43

标签: python django code-coverage jinja2 coverage.py

按照Ned Batchelder的Coverage.py for Django templates博客文章和django_coverage_plugin插件来测量Django模板的代码覆盖率。

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

from coffin.shortcuts import render_to_response

目前,我们正在使用django-coveragetest_coverage command来运行覆盖范围的测试:

python manage.py test_coverage project_name

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

1 个答案:

答案 0 :(得分:10)

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