Evidence Reporter
Reporte individual de evidencias de negocio
Resumen del caso

{{ case.name }}

Estatus de ejecución
{% if case.status == 'PASS' %}✓{% elif case.status == 'FAIL' %}✕{% elif case.status == 'SKIP' %}↷{% else %}!{% endif %} {{ case.status }}
{% if case.description %}

{{ case.description }}

{% endif %} {% if case.attempts %}

Historial de intentos

{% for attempt in case.attempts + [case] %}{% endfor %}
{{ loop.index }} · {{ attempt.status }}{{ attempt.started_at|display_date }}{% if attempt.message %}
{{ attempt.message }}{% endif %}
{% endif %}
Duración{% if case.duration_seconds is not none %}{{ '%.2f'|format(case.duration_seconds) }} s{% else %}Sin finalizar{% endif %}
Capturas obtenidas{{ case.events|selectattr('kind','equalto','capture')|list|length }}
Advertencias{{ case.warning_count }}
{% for label,value in case.metadata.items() %}{% endfor %}
Caso de prueba{{ case.name }}
Suite{{ case.suite }}
Inicio de ejecución
Fin de ejecución
{{ label }}{{ value }}
{% if case.message %}
Resultado

{{ case.message }}

{% endif %} {% if case.status == 'INCOMPLETE' %}
Ejecución incompleta: se muestran las evidencias conservadas, sin atribuir un resultado final.
{% endif %}
{% macro logs_list(events) %}{% for event in events %}
{{ event.title }}
{{ event.level }}{% if event.reason %}

{{ event.reason }}

{% else %}

{{ event.title }}

{% endif %}
{% endfor %}{% endmacro %} {% macro captures_list(events) %}{% for event in events if event.kind in ['capture','capture_warning'] %}

{{ event.title }}

{% if event.status == 'PASS' %}✓{% elif event.status == 'FAIL' %}✕{% elif event.status == 'WARN' %}!{% else %}ⓘ{% endif %} {{ event.status }}
{% if event.kind == 'capture' %}{% if event.description %}

{{ event.description }}

{% endif %}
{{ {'page':'Página visible','element':'Elemento','desktop':'Escritorio','attachment':'Imagen adjunta'}.get(event.capture_type,event.capture_type) }} · {{ event.width }} × {{ event.height }} pxAmpliar imagen ↗
{% if event.url %}
URL: {{ event.url }}{% if event.page_title %}
Página: {{ event.page_title }}{% endif %}
{% endif %} {% else %}
Evidencia no disponible

{{ event.reason }}

{% endif %}
{% else %}

Sin capturas en este bloque.

{% endfor %} {% endmacro %}
{% set milestones = blocks|selectattr('id')|list %}{% if milestones %}
{{ milestones|length }} hitos de negocio
{% endif %} {% for block in blocks %}{% set block_index = loop.index %}{% set messages = block.events|rejectattr('kind','equalto','capture')|list %}{% set warnings = block.events|selectattr('level','equalto','WARN')|list %}{% set captures = block.events|selectattr('kind','equalto','capture')|list %}
{{ 'Hito de negocio' if block.id else 'Evidencias directas' }}{{ loop.index }}{{ block.title }}{{ captures|length }} capturas · {{ messages|length }} logs · {{ block.warning_count }} advertencias
{% if block.description %}

{{ block.description }}

{% endif %} {% if not block.id %}
{{ captures_list(block.events) }}
{{ logs_list(messages) }}{% if not messages %}

Sin mensajes registrados en este bloque.

{% endif %}
{% else %} {{ captures_list(block.events) }} {% if messages %}
Logs del bloque · {{ messages|length }}
{{ logs_list(messages) }}
{% endif %} {% endif %}
{% else %}

Sin evidencias registradas

El resultado se conserva aunque no se hayan llamado keywords de evidencia.

{% endfor %}
Registro de mensajes

Logs de negocio

Mensajes explícitos y advertencias de captura. Despliega el bloque que quieras consultar.

{% set counts = namespace(total=0) %}{% for block in blocks %}{% set messages = block.events|rejectattr('kind','equalto','capture')|list %}{% if messages %}{% set counts.total = counts.total + messages|length %}
{{ block.title }} · {{ messages|length }}
{{ logs_list(messages) }}
{% endif %}{% endfor %}{% if counts.total == 0 %}

Sin logs registrados.

{% endif %}