跳至主要内容

使用模板生成Pytest报告

项目描述

PyPI version

从模板生成Pytest报告。您可以使用PyPI上可用的模板之一(如参考模板pytest-reporter-html1),继承它们以调整其内容和外观,或从头开始制作。

任何基于文本的内容都可以生成,如HTML、LaTeX、CSV等。

安装

您可以通过从PyPI使用pip安装“pytest-reporter”

$ pip install pytest-reporter

使用方法

指定您要使用的模板和报告的输出路径

$ pytest --template-dir=templates --template=report.html --report=report.html

编写模板

此插件不包含对任何模板引擎的内置支持,每个模板都必须实现渲染(或使用另一个模板插件作为基础)。一个最小的模板可能只需实现pytest_reporter_render钩子。

这是一个非常基础的Jinja2模板实现

from jinja2 import Environment, FileSystemLoader, TemplateNotFound

def pytest_reporter_render(template_name, dirs, context):
    env = Environment(loader=FileSystemLoader(dirs))
    try:
        template = env.get_template(template_name)
    except TemplateNotFound:
        # Don't know about this name, may be provided by some other template
        return
    return template.render(context)

有关完整的参考实现,请参阅pytest-reporter-html1

模板上下文

所有模板都可用以下标准上下文

  • config: 配置

  • 会话: 会话

  • 启动时间: 会话开始时的 Unix 时间戳

  • 结束时间: 会话完成时的 Unix 时间戳

  • 警告[]: 警告列表,类型为 WarningMessage

  • 项目: 收集到的项目字典,以节点 ID 为键

  • 测试[]: 每次运行的测试列表,以字典形式存在,包含以下键

    • 项目: 项目

    • 阶段[]: 每个测试阶段(设置、调用、清理)的列表,以字典形式存在,包含以下键

      • 调用 (可选): 如果有可用,则为 调用信息.

      • 报告: 测试报告

      • 部分: 与 report.sections 相同,但仅捕获此阶段的部分

      • 日志记录[]: 测试阶段记录的 日志记录 列表

      • 状态: 此阶段的状态。包含以下键的字典

        • 类别: 状态类别(例如,“通过”)或空字符串

        • 字母: 状态的单字母版本(例如,“P”)或空字符串

        • 单词: 状态的大写单词版本(例如,“PASSED”)或空字符串

        • 样式: 包含例如 {"yellow": True} 的字典或空字典

    • 状态: 整个测试的状态。包含以下键的字典

      • 类别: 测试状态的类别(例如,“通过”)

      • 字母: 测试状态的单字母版本(例如,“P”)

      • 单词: 测试状态的大写单词版本(例如,“PASSED”)

      • 样式: 包含例如 {"yellow": True} 的字典或空字典

可以使用以下方法扩展或修改上下文

  • config.template_context

  • template_context 修复

  • pytest_reporter_context() 钩子

钩子

有关可用的钩子完整列表,请参阅 hooks.py

许可证

MIT 许可证的条款下分发,“pytest-reporter”是免费和开源软件

问题

如果您遇到任何问题,请提交问题,并附带详细描述。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

pytest-reporter-0.5.3.tar.gz (9.8 kB 查看哈希值)

上传于

构建版本

pytest_reporter-0.5.3-py3-none-any.whl (7.6 kB 查看哈希值)

上传于 Python 3

由以下支持