Add test report HTML template

This commit is contained in:
2026-01-29 17:57:36 +00:00
parent 3a8e6becf1
commit 01d8295512

View File

@@ -0,0 +1,125 @@
{% extends "base.html" %}
{% block title %}{{ data.run.test_name }} - Test Report{% endblock %}
{% block header_title %}{{ data.run.test_name }}{% endblock %}
{% block content %}
<section class="test-overview">
<h2>Test Overview</h2>
<div class="metadata">
<div class="metadata-item">
<span class="label">Run ID:</span>
<span class="value">{{ data.run.id }}</span>
</div>
<div class="metadata-item">
<span class="label">Test Name:</span>
<span class="value">{{ data.run.test_name }}</span>
</div>
<div class="metadata-item">
<span class="label">Started:</span>
<span class="value">{{ data.run.started_at.strftime('%Y-%m-%d %H:%M:%S') }}</span>
</div>
<div class="metadata-item">
<span class="label">Completed:</span>
<span class="value">{% if data.run.completed_at %}{{ data.run.completed_at.strftime('%Y-%m-%d %H:%M:%S') }}{% else %}N/A{% endif %}</span>
</div>
<div class="metadata-item">
<span class="label">Operator:</span>
<span class="value">{{ data.run.operator or 'N/A' }}</span>
</div>
<div class="metadata-item">
<span class="label">Status:</span>
<span class="value">
<span class="status-badge {{ data.overall_status|lower }}">{{ data.overall_status }}</span>
</span>
</div>
{% if data.run.description %}
<div class="metadata-item" style="grid-column: span 2;">
<span class="label">Description:</span>
<span class="value">{{ data.run.description }}</span>
</div>
{% endif %}
</div>
</section>
<section class="results-summary">
<h2>Results Summary</h2>
<div class="summary-cards">
<div class="summary-card pass">
<div class="count">{{ data.passed_count }}</div>
<div class="label">Passed</div>
</div>
<div class="summary-card fail">
<div class="count">{{ data.failed_count }}</div>
<div class="label">Failed</div>
</div>
<div class="summary-card info">
<div class="count">{{ data.results|length }}</div>
<div class="label">Total Results</div>
</div>
</div>
</section>
<section class="results-table-section avoid-break">
<h2>Test Results</h2>
{% if data.results %}
<table class="results-table">
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
<th>Unit</th>
<th>Lower Limit</th>
<th>Upper Limit</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{% for result in data.results %}
<tr>
<td>{{ result.parameter }}</td>
<td class="value-cell">{{ "%.6f"|format(result.value) }}</td>
<td>{{ result.unit }}</td>
<td class="limit-cell">{% if result.lower_limit is not none %}{{ "%.6f"|format(result.lower_limit) }}{% else %}—{% endif %}</td>
<td class="limit-cell">{% if result.upper_limit is not none %}{{ "%.6f"|format(result.upper_limit) }}{% else %}—{% endif %}</td>
<td class="status-cell">
{% if result.passed is true %}
<span class="status-badge pass">PASS</span>
{% elif result.passed is false %}
<span class="status-badge fail">FAIL</span>
{% else %}
<span class="status-badge pending">N/A</span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>No results recorded for this test run.</p>
{% endif %}
</section>
{% if data.charts %}
<section class="charts-section page-break-before">
<h2>Charts</h2>
{% for chart_name, chart_base64 in data.charts.items() %}
<div class="chart-container avoid-break">
<h3>{{ chart_name }}</h3>
<img src="data:image/png;base64,{{ chart_base64 }}" alt="{{ chart_name }}">
</div>
{% endfor %}
</section>
{% endif %}
{% if data.run.config_json %}
<section class="configuration-section avoid-break">
<h2>Test Configuration</h2>
<div class="config-section">
<pre>{{ config_formatted }}</pre>
</div>
</section>
{% endif %}
{% endblock %}