Add test report HTML template
This commit is contained in:
125
src/py_dvt_ate/reporting/templates/test_report.html
Normal file
125
src/py_dvt_ate/reporting/templates/test_report.html
Normal 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 %}
|
||||
Reference in New Issue
Block a user