{%- set s = test_summary %} {%- set executed = s.total - s.skipped %}

{{ test_report_title|e }}

Generated {{ timestamp }}{% if duration is not none %} · Total time {{ '%.2f'|format(duration) }}s{% endif %}
Total
{{ s.total }}
Passed
{{ s.passed }}
Failed
{{ s.failed }}
Errors
{{ s.error }}
Skipped
{{ s.skipped }}
Pass rate
{{ s.percentage }}%

Outcome

{%- set t = s.total if s.total else 1 %} {%- set p1 = (s.passed * 100 / t) %}{% set p2 = p1 + (s.failed * 100 / t) %}{% set p3 = p2 + (s.error * 100 / t) %}
Passed Failed Error Skipped

Environment

{% for key, value in (environment or {}).items() %}{% endfor %}
{{ key|e }}{{ value|e }}
Executed{{ executed }} of {{ s.total }} (skipped excluded from pass rate)

Slowest tests

{% if slowest_tests %} {% for t in slowest_tests %}{% endfor %}
{{ t.name|truncate(48, True)|e }}{{ '%.3f'|format(t.duration) }}s
{% else %}

No timing data recorded.

{% endif %}
{% for r in test_results %} {%- set md = r.metadata or {} %}
{{ r.result }} {{ r.name|e }}{% for tag in md.get('tags') or [] %}{{ tag|e }}{% endfor %} {% if md.get('duration') is number %}{{ '%.3f'|format(md.duration) }}s{% endif %}
{% if md.get('location') %}

{{ md.location|e }}{% if md.get('project') %} · {{ md.project|e }}{% endif %}{% if md.get('retries') %} · retries: {{ md.retries }}{% endif %}{% if md.get('flaky') %} · flaky{% endif %}

{% endif %}

Description

{% if r.description %}

{{ r.description|e }}

{% else %}

No description (add a docstring to the test).

{% endif %} {% if r.traceback %}

{% if r.result in ['failed', 'error'] %}Error{% else %}Details{% endif %}

{{ r.traceback|e }}
{% endif %} {% set attachments = md.get('attachments') or [] %} {% if attachments %}

Attachments

{% for a in attachments %} {% if a.content_type and a.content_type.startswith('image/') and a.data %}
{{ a.name|e }}
{{ a.name|e }}
{% elif a.text %}
{{ a.name|e }}
{{ a.text|e }}
{% elif a.path %}

{{ a.name|e }} ({{ a.content_type|e }})

{% endif %} {% endfor %}
{% endif %}
{% endfor %}

No tests match the current filter.