Django模板coverage.py插件
项目描述
一个用于测量Django模板测试覆盖率的coverage.py插件。
支持平台
Python: 3.8至3.12。
Django: 2.x, 3.x和4.x。
Coverage.py: 6.x或更高版本。
插件可通过pip安装
$ python3 -m pip install django_coverage_plugin
要运行它,请将以下设置添加到您的.coveragerc文件中
[run] plugins = django_coverage_plugin
然后在coverage.py下运行您的测试。
您将在覆盖率报告中看到模板列表,与您的Python模块并列。请使用版本4.4或更高版本的coverage.py,以便插件识别未测试的模板。
如果您遇到django.core.exceptions.ImproperlyConfigured
错误,您需要设置DJANGO_SETTINGS_MODULE
环境变量。
模板覆盖率仅在您的Django模板启用调试的情况下才有效。如果您收到django_coverage_plugin.plugin.DjangoTemplatePluginException: Template debugging must be enabled in settings
错误,或者没有模板被测量,请确保您的设置文件中的TEMPLATES.OPTIONS.debug
设置为True
TEMPLATES = [
{
...
'OPTIONS': {
'debug': True,
},
},
]
配置
Django模板插件使用您<.coveragerc>文件中的某些现有设置。source=、include=和omit=选项控制哪些模板文件包含在报告中。
插件可以找到未使用的模板并将它们包含在结果中。默认情况下,它将在您的模板目录中查找扩展名为.html、.htm或.txt的文件。如果您喜欢,可以配置它查找不同的扩展名集。
[run] plugins = django_coverage_plugin [django_coverage_plugin] template_extensions = html, txt, tex, email
如果您使用pyproject.toml进行工具配置
[tool.coverage.run] plugins = [ 'django_coverage_plugin', ] [tool.coverage.django_coverage_plugin] template_extensions = 'html, txt, tex, email'
注意事项
Coverage.py无法判断{% blocktrans %}
标签使用了单数还是复数文本,因此如果使用了该标签,则都会标记为已使用。
是什么?如何做到的?
用于测量覆盖率的技巧与Dmitry Trofimov在dtcov中使用的技巧相同,但作为插件集成到coverage.py中,并使其更高效。我非常乐意看到它在实际生产项目中的表现。如果您想帮我,请随时给我发电子邮件。
Coverage.py插件机制旨在在一般情况下对coverage.py的收集和报告阶段进行挂钩,特别是为了支持非Python文件。如果您想在coverage.py中支持非Python文件,让我们谈谈。
测试
运行测试
$ python3 -m pip install -r requirements.txt $ tox
历史
v3.1.0 — 2023-07-10
停止支持Python 3.7和Django 1.x。声明支持Python 3.12。
v3.0.0 — 2022-12-06
停止支持Python 2.7、Python 3.6和Django 1.8。
v2.0.4 — 2022-10-31
宣布我们支持Python 3.11和Django 4.1。
v2.0.3 — 2022-05-04
添加对Django 4.0的支持。
v2.0.2 — 2021-11-11
如果在查找模板时找到非UTF-8文件,则在报告阶段读取时将失败,导致执行结束。现在,此错误将以可以忽略的方式引发,例如在<.coveragerc>设置中的[report] ignore_errors=True(问题 78)。
当使用source=.时,会找到现有的覆盖率HTML报告目录,并认为它是未测量的HTML模板文件。现在已修复。
v2.0.1 — 2021-10-06
测试并声明对Python 3.10的支持。
v2.0.0 — 2021-06-08
停止支持Python 3.4和3.5。
有一个设置可用:template_extensions允许您设置在查找未使用的模板时要考虑的文件扩展名(在问题 60中提出)。
修复了一个在Windows上文件名区分大小写的问题,导致模板被遗漏(问题 46)。
修复了一个问题(问题 63),其中如果测试收集期间导入,则无法找到标签库。感谢Daniel Izquierdo修复此问题。
v1.8.0 — 2020-01-23
添加了对
Coverage 5
v1.7.0 — 2020-01-16
添加了对
Python 3.7 & 3.8
Django 2.2 & 3.0
v1.6.0 — 2018-09-04
添加对 Django 2.1 的支持。
v1.5.2 — 2017-10-18
验证对 Django 版本 2.0b1 的支持。改进模板文件的发现。
v1.5.1a — 2017-04-05
验证对 Django 版本 1.11 的支持。对新包维护者 Pamela McA’Nulty 进行测试。
v1.5.0 — 2017-02-23
移除对低于 1.8 版本的 Django 的支持。验证对 Django 版本 1.11b1 的支持。
v1.4.2 — 2017-02-06
修复了另一个实例的 问题 32,该问题是初始化顺序问题导致的。
v1.4.1 — 2017-01-25
修复了 问题 32,该问题是初始化顺序问题导致的。
v1.4 — 2017-01-16
现在支持 Django 1.10.5。
将设置配置的检查推迟,以便将 settings.py 包含在覆盖率报告中。修复了 问题 28。
只支持 django.template.backends.django.DjangoTemplates 模板引擎,并且必须使用 ['OPTIONS']['debug'] = True 进行配置。修复了 问题 27。
v1.3.1 — 2016-06-02
设置读取方式略有不同,以避免干扰不需要设置的程序。修复了 问题 18。
v1.3 — 2016-04-03
允许使用多个模板引擎。感谢 Simon Charette。
v1.2.2 — 2016-02-01
代码没有变化,但现在支持 Django 1.9.2。
v1.2.1 — 2016-01-28
正确检查模板调试设置,对于仍在 Django 新版本中使用 TEMPLATE_DEBUG 的人来说。
v1.2 — 2016-01-16
检查设置中是否启用了模板调试,如果没有,则抛出一个可见警告。这防止了插件神秘失败,并修复了 问题 17。
包括潜在的 Django 1.9 支持,但尚未应用 Django 的补丁。
v1.1 — 2015-11-12
如果需要,显式配置设置以使事物正常工作。
v1.0 — 2015-09-20
第一个版本 :)
项目详情
下载文件
下载您平台上的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发版
django_coverage_plugin-3.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 223d34bf92bebadcb8b7b89932480e41c7bd98b44a8156934488fbe7f4a71f99 |
|
MD5 | 02a76d1fc973537f97f35c3fcb8f3a17 |
|
BLAKE2b-256 | bad2f37452482053e82c47c6ec2626370fe1a2cd81af31e510ad90bb2cb4a081 |
django_coverage_plugin-3.1.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eb0ea8ffdb0db11a02994fc99be6500550efb496c350d709f418ff3d8e553a67 |
|
MD5 | 8f7e665d6aac3ec8547e3d1cd2757241 |
|
BLAKE2b-256 | c605892bd4cbf2cd2735c1f179bc9bbcac1762f0d505957566f0d39bdcd98a64 |