Generate Pytest reports with templates
Project description
Generate Pytest reports from templates. You may use one of the available templates on PyPI (like the reference template pytest-reporter-html1), inherit them in your own template to tweak their content and appearence or make your own from scratch.
Anything text based can be generated like HTML, LaTeX, CSV et.c.
Installation
You can install “pytest-reporter” via pip from PyPI:
$ pip install pytest-reporter
Usage
Specify the template you want to use and the output path of the report:
$ pytest --template-dir=templates --template=report.html --report=report.html
Writing templates
This plugin does not come with built-in support for any template engines, it is up to each template to implement the rendering (or use another template plugin as base). A minimal template may just implement the pytest_reporter_render hook.
This is a very basic Jinja2 template implementation:
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:
return
return template.render(context)
See pytest-reporter-html1 for a full reference implementation.
The template context
The standard context available for all templates include the following:
config: Config
session: Session
started: Unix timestamp
ended: Unix timestamp
warnings: List of warnings.WarningMessage
tests: List of dictionaries with the following keys:
item: Item
phases: List of dictionaries with the following keys:
call: CallInfo
report: TestReport
log_records: List of logging.LogRecord
status: Dictionary with the following keys:
category: Category of the status or empty string
letter: Single letter version of status or empty string
word: Uppercase word version of status or empty string
style: Dictionary with {"color": True} or empty dictionary
status: Dictionary with the following keys:
category: Category of the test status
letter: Single letter version of test status
word: Uppercase word version of test status
style: Dictionary with {"color": True} or empty dictionary
The context may be extended or modified using the following methods:
config.template_context
The template_context fixture
The function_context fixture (for the current tests item)
The pytest_reporter_context() hook
Hooks
See hooks.py for a complete list of hooks available.
License
Distributed under the terms of the MIT license, “pytest-reporter” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_reporter-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87fbf5ca93017f1a7a95e174d836596de82f632d6b3b6a73f3d52b1613cfc372 |
|
MD5 | eceb70d0d94165bf41c0323275553ce5 |
|
BLAKE2b-256 | 9293a8e333eb7a2964abf1d1a331d682acc69dd4b6dd7fe0150d34eae37fb2ce |