pytest的一个插件,用于生成基于Jinja的自定义HTML报告
项目描述
pytest-jinja是一个用于在pytest中生成基于Jinja的自定义HTML报告的插件。它基于pytest-html,但通过分离结果数据收集和报告生成来完全改变其内部工作方式,从而允许轻松开发包含任何javascript或css的定制HTML报告。
此版本是从[g-bon的pytest-jinja](https://github.com/g-bon/pytest-jinja)分叉的。
需求
要使用pytest-html,您需要以下先决条件
Python 3.10
安装
$ 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以及@hackebrot的cookiecutter-pytest-plugin模板生成的。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。