Report Summary
Suite Name: {{ session.suite_name or 'Test Suite' }}
Date: {{ session.end_time.strftime('%d/%m/%Y') }}
Total Tests: {{ summary.total }}
Passed: {{ summary.passed }}
Failed: {{ summary.failed }}
Passed/Expected: {{ summary.passed }}/{{ summary.total }} ({{ "%.1f"|format(summary.pass_rate) }}%)
Duration: {{ "%.2f"|format(session.duration) }}s
Date: {{ session.end_time.strftime('%d/%m/%Y') }}
Total Tests: {{ summary.total }}
Passed: {{ summary.passed }}
Failed: {{ summary.failed }}
Passed/Expected: {{ summary.passed }}/{{ summary.total }} ({{ "%.1f"|format(summary.pass_rate) }}%)
Duration: {{ "%.2f"|format(session.duration) }}s
Test Statistics
| Total | Pass | Fail | Skip | Pass % | Elapsed |
|---|---|---|---|---|---|
| {{ summary.total }} | {{ summary.passed }} | {{ summary.failed }} | {{ summary.skipped }} | {{ "%.1f"|format(summary.pass_rate) }}% | {{ "%.2f"|format(session.duration) }}s |
Suite Statistics
| Suite | Total | Pass | Fail | Skip | Pass % | Logs | Actions |
|---|---|---|---|---|---|---|---|
| {{ feature.name }} | {{ feature.passed + feature.failed + feature.skipped }} | {{ feature.passed }} | {{ feature.failed }} | {{ feature.skipped }} | {% set total = feature.passed + feature.failed + feature.skipped %} {% if total > 0 %} {{ "%.1f"|format((feature.passed / total) * 100) }}% {% else %} 0.0% {% endif %} | 📋 Suite Logs |
📊 Details
{% if feature.failed > 0 %}
❌ Failures
{% endif %}
|
Tag Statistics
| Tag | Total | Pass | Fail | Skip | Pass % |
|---|---|---|---|---|---|
| {{ tag }} | {{ stats.total }} | {{ stats.passed }} | {{ stats.failed }} | {{ stats.skipped }} | {% if stats.total > 0 %} {{ "%.1f"|format((stats.passed / stats.total) * 100) }}% {% else %} 0.0% {% endif %} |
Test Details
| Test Name | Status | Duration | Suite | Tags | Start Time | Logs | Actions |
|---|---|---|---|---|---|---|---|
|
{{ scenario.name }}
{% if scenario.error and scenario.status == 'failed' %}
{{ scenario.error.split('\n')[0][:80] }}{% if scenario.error.split('\n')[0]|length > 80 %}...{% endif %}
{% endif %}
|
{{ scenario.status|upper }}
{% if scenario.is_overridden %}
OVERRIDE {% endif %} {% if scenario.bug_info %} {{ scenario.bug_info.bug_id }} {% endif %} |
{{ "%.3f"|format(scenario.duration) }}s
{% if scenario.duration > 1.0 %}
SLOW {% elif scenario.duration < 0.01 %} FAST {% endif %} |
{{ scenario.feature or 'Unknown' }} | {% if scenario.tags %} {% for tag in scenario.tags %} {{ tag }} {% endfor %} {% else %} No tags {% endif %} | {{ scenario.start_time|timestamp_to_time }} | {% if scenario.captured_output or scenario.captured_logs %} 📋 Logs {% else %} No logs {% endif %} |
📄 Details
{% if scenario.status == 'failed' %}
📋 Copy Error
{% endif %}
|
Suite Details
{% for feature in features %}
{{ feature.name }}
{{ feature.passed + feature.failed + feature.skipped }} tests,
{{ feature.passed }} passed,
{{ feature.failed }} failed
{% if feature.skipped > 0 %}, {{ feature.skipped }} skipped{% endif %}
{% for scenario in feature.scenarios %}
{% endfor %}
{{ scenario.status|upper }}
{{ scenario.name }}
{% if scenario.error %}
{{ scenario.error }}
{% endif %}