跳转到主要内容

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 (13.8 kB 查看哈希值)

上传时间: 源代码

构建分发版

django_coverage_plugin-3.1.0-py3-none-any.whl (14.1 kB 查看哈希值)

上传时间: Python 3

由以下支持