跳转到主要内容

pytest的一个插件,用于生成基于Jinja的自定义HTML报告

项目描述

pytest-jinja是一个用于在pytest中生成基于Jinja的自定义HTML报告的插件。它基于pytest-html,但通过分离结果数据收集和报告生成来完全改变其内部工作方式,从而允许轻松开发包含任何javascript或css的定制HTML报告。

License Python versions Issues

此版本是从[g-bon的pytest-jinja](https://github.com/g-bon/pytest-jinja)分叉的。


需求

要使用pytest-html,您需要以下先决条件

  • Python 3.10

安装

您可以从PyPI使用pip安装“pytest-jinja”

$ pip install pytest-jinja

使用方法

  • 如果没有指定模板,则使用默认模板。默认模板几乎与pytest-html相同

    $ pytest testcase --report=test_report.html
  • 或者您可以传递自己的模板,pytest-jinja将使用报告数据作为jinja变量渲染您的模板

    $ pytest testcase --report=test_report.html --template=my_template.html

创建自定义模板

您可以通过简单地创建任何模板来创建自己的模板。报告数据以单个对象的形式“传递”到页面,该对象称为report。此对象的属性包含所有必要的报告数据。

模板示例

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test Report - {{ report.time_report_generation }}</title>
</head>
<body>
<h1>Test Report - {{ report.time_report_generation }} </h1>

<h2>Environment</h2>
<table id="environment">
    {% for name,value in report.environment.items() %}
    <tr>
        <td>{{ name }}</td>
        <td>{{ value }}</td>
    </tr>
    {% endfor %}
</table>

<h2>Summary</h2>
<p>{{ report.tests_count }} tests ran in {{ report.duration | round(2)}} seconds. </p>

<h2>Results</h2>
<table>
    {% for r in report.results %}
    <tr>
        <td>{{ r.test_id }}</td>
        <td>{{ r.outcome }}</td>
        <td><strong>{{ r.time|round(5) }}s</strong></td>
    </tr>
    {% endfor %}
</table>

</body>
</html>

另一个模板示例

{{ report | json }}

可用的报告数据

report.tests_count:执行测试的总数(int)

report.errors:错误数量(int)

report.failed:失败的测试数量(int)

report.passed:通过测试的数量(int)

report.skipped:跳过的测试数量(int)

report.xfailed:预期失败的数量(int)

report.xpassed:意外通过的数量(int)

report.rerun:重试的数量(int)

report.duration:测试会话持续时间(以秒为单位)(float)

report.time_report_generation:报告生成日期和时间(str)

report.environment:测试执行元数据(dict)

report.results:测试结果数据(具有属性 test_id、time、outcome、stacktrace、config 的对象)

report.report_path:通过命令行传递的报告路径(pathlib.Path)

report.template_path:通过命令行传递的模板路径(pathlib.Path)

贡献

欢迎贡献。可以使用tox运行测试。

许可协议

在Mozilla公共许可证下分发,版本2.0。如果此文件未附带MPL副本,您可以在http://mozilla.org/MPL/2.0/获取一份。“pytest-jinja”是免费和开源软件

问题

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

pytest插件是用Cookiecutter以及@hackebrotcookiecutter-pytest-plugin模板生成的。

项目详情


下载文件

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

源分布

pytest-jinja-0.1.3.tar.gz (11.1 kB 查看散列)

上传时间:

构建分布

pytest_jinja-0.1.3-py3-none-any.whl (12.5 kB 查看散列)

上传时间: Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面