A basic HTML report for pytest using Jinja2 template engine. Based on pytest-reporter which provides the data to the template.
- Overview of files, tests, and phases with expandable sections
- Includes information about tests such as documentation, markers, and fixtures
- Fairly mobile friendly
- Complies with Jenkins default CSP policy (with
--split-report
) - Support for pytest-metadata and pytest-rerunfailures
- May be used as a base template for customization
You can install "pytest-reporter-html1" via pip from PyPI:
$ pip install pytest-reporter-html1
Specify the html1 template and the output path of the report:
$ pytest --template=html1/index.html --report=report.html
By default the report is self-contained, but you can separate CSS, images,
and JavaScript by specifying the --split-report
option.
You can inherit this template in your own to tailor parts of it to your own needs. It defines various blocks which you can override using template inheritance.
{% extends "html1/index.html" %}
{% block style %}
{{ super() }}
header {
background-color: black;
}
{% endblock %}
Some additional filters are available for templates to use:
asset(path_or_content, extension)
Takes a path to a local file or a raw bytes object and either returns a base64 encoded URL or a new relative URL to a copy depending on if the report is self-contained or not.
<img src="{{ 'path/to/image.png'|asset }}"> <img src="{{ raw_byte_data|asset('png') }}">
ansi(s)
- Convert ANSI color codes to HTML.
strftime(value, format)
Format a Unix timestamp using datetime.strftime.
Started: {{ started|strftime('%Y-%m-%d %H:%M:%S') }}
timedelta(value)
- Convert a time in seconds to a timedelta object.
rst(s)
- Convert reStructuredText to HTML.
If you encounter any problems, please file an issue along with a detailed description.