Test Summary
{{ bugs_found }}
Property Violations
{{ total_crash_count|default(0) }}
Crashes
{{ total_anr_count|default(0) }}
ANRs
{{ "%.2f"|format(coverage_percent) }}%
Activity Coverage
{{ all_properties_count }}
All Properties
{{ executed_properties_count }}
Executed Properties
{% if merge_info %}
{% for dir_name in merge_info.source_directories %}
{{ loop.index }}.
{{ dir_name }}
{% endfor %}
{% endif %}
Activities Coverage
Activity Name {{ tested_activities_count }}/{{ total_activities_count }}
Visit Count
{% if total_activities|length > 0 %}
{% for activity in total_activities %}
{% if activity in tested_activities %}
{% else %}
{% endif %}
{{ activity }}
{% if activity in activity_count_history %}
{{ activity_count_history[activity] }} times
{% else %}
0 times
{% endif %}
{% endfor %}
{% else %}
No activities found
{% endif %}
{% if crash_events or anr_events %}
Crash and ANR Events
Type
Time
Exception
Process
Report Source
Details
{% for crash in crash_events %}
CRASH
{{ crash.time }}
{{ crash.exception_type }}
{{ crash.process }}
{% if crash.report_path %}
{{ crash.source_directory or 'Unknown' }}
{% elif crash.source_directory %}
{{ crash.source_directory }}
{% else %}
N/A
{% endif %}
Details
Copy
Stack Trace:
{{ crash.stack_trace }}
{% endfor %}
{% for anr in anr_events %}
ANR
{{ anr.time }}
{{ anr.reason }}
{{ anr.process }}
{% if anr.report_path %}
{{ anr.source_directory or 'Unknown' }}
{% elif anr.source_directory %}
{{ anr.source_directory }}
{% else %}
N/A
{% endif %}
Details
Copy
ANR Details:
{{ anr.trace }}
{% endfor %}
{% else %}
Crash and ANR Events
No crash or ANR events detected in this test session.
{% endif %}
Property Checking Statistics
Index
Property Name {{ property_stats_summary.total_properties if property_stats_summary is defined else property_stats|length }}
Precondition Satisfied {{ property_stats_summary.total_precond_satisfied if property_stats_summary is defined else 0 }}
Total Executions {{ property_stats_summary.total_executed if property_stats_summary is defined else 0 }}
Passes {{ property_stats_summary.total_passes if property_stats_summary is defined else 0 }}
Fails {{ property_stats_summary.total_fails if property_stats_summary is defined else 0 }}
Errors {{ property_stats_summary.total_errors if property_stats_summary is defined else 0 }}
Skipped {{ property_stats_summary.total_not_executed if property_stats_summary is defined else 0 }}
{% for property_name, test_result in property_stats.items() %}
{{ loop.index }}
{{ property_name }}
{{ test_result.precond_satisfied|default(0) }}
{{ test_result.executed_total|default(test_result.executed|default(0)) }}
{{ test_result.pass_count|default(0) }}
{{ test_result.fail|default(0) }}
{{ test_result.error|default(0) }}
{{ test_result.not_executed|default(0) }}
{% endfor %}
{% if property_source_mapping %}
Property Source Mapping
Source Directory Information:
This section shows which test directories contain properties with failures or errors.
Use this information to locate the original test reports for detailed error analysis.
Index
Property Name
Source Directories
{% for property_name, source_dirs in property_source_mapping.items() %}
{{ loop.index }}
{{ property_name }}
{% set max_visible = 3 %}
{% if source_dirs|length <= max_visible %}
{% for dir_info in source_dirs %}
{% if dir_info.report_path %}
{{ dir_info.dir_name }}
{% else %}
{{ dir_info.dir_name }}
{% endif %}
{% endfor %}
{% else %}
{% for dir_info in source_dirs[:max_visible] %}
{% if dir_info.report_path %}
{{ dir_info.dir_name }}
{% else %}
{{ dir_info.dir_name }}
{% endif %}
{% endfor %}
{% for dir_info in source_dirs[max_visible:] %}
{% if dir_info.report_path %}
{{ dir_info.dir_name }}
{% else %}
{{ dir_info.dir_name }}
{% endif %}
{% endfor %}
+{{ source_dirs|length - max_visible }} more
{% endif %}
{% endfor %}
{% endif %}
Kea2 Merged Test Report | Generated at: {{ timestamp }}