Deterministic HTML summaries of Cucumber test reports
Project description
Test Report Vibes
Deterministic HTML summaries of Cucumber test reports.
test-report-vibes turns Cucumber JSON output into a focused, self-contained HTML report so you can quickly review what failed and why.
What it does
- Filters report data to failing, undefined, and pending steps
- Keeps scenario context (all steps), plus optional screenshots from embeddings/hooks
- Groups issues by feature and includes pass/fail stats across the full run
- Builds a deterministic executive summary (no external AI/LLM calls)
- Optionally classifies failing scenarios by tags such as
@new_issueand@flaky
Installation
From PyPI:
pip install test-report-vibes
From source:
git clone https://github.com/srbarrios/test-report-vibes.git
cd test-report-vibes
pip install -e .
Quick start
test-report-vibes examples/sample_report_with_classifiers.json
This creates examples/sample_report_with_classifiers.html.
CLI usage
test-report-vibes [OPTIONS] INPUT_FILE
Arguments:
INPUT_FILE Path to Cucumber JSON report [required]
Options:
-o, --output PATH Output HTML file path (default: INPUT_FILE.html)
-v, --verbose Verbose output with detailed exception trace on errors
--no-classify Skip the tag-based classification section
--help Show this message and exit
Examples:
# Default output path: INPUT_FILE.html
test-report-vibes cucumber-report.json
# Custom output file
test-report-vibes cucumber-report.json -o report-summary.html
# Disable tag-based classification section
test-report-vibes cucumber-report.json --no-classify
# Run as module
python -m test_report_vibes cucumber-report.json
Input format
The tool expects standard Cucumber JSON (root array of features). At minimum, each feature should include:
uri,id,name,keyword,elements
Steps support these statuses:
passed,failed,skipped,pending,undefined
Screenshots are supported through base64 embeddings with image mime types (for example image/png) on steps and hooks.
Output report highlights
Generated HTML includes:
- Overall run dashboard (passed/failed/skipped feature percentages)
- Executive summary cards such as:
- Most impacted features
- Recurring normalized error patterns
- Top error types
- Framework gaps (undefined/pending steps)
- Slowest failing scenarios and steps
- Failing features with collapsible scenario details
- Full step context including status, duration, location, and error text
- Embedded screenshots when present
- Optional "Classified features" section from tag-based mapping
Tag-based classification
When classification is enabled (default), statuses are derived from tags in this priority order:
@new_issue->New and reported@under_debugging->Debugging@bug_reported->Bug reported@test_issue->Test Framework issue@flaky->Flaky Test- no match ->
Not reported
Sample Report
Check out a live example of the generated report:
Development
Install dev dependencies:
pip install -e ".[dev]"
Run tests:
pytest
Format and lint:
black src/
ruff check src/
License
This project is licensed under the MIT License. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file test_report_vibes-0.2.1.tar.gz.
File metadata
- Download URL: test_report_vibes-0.2.1.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e2e0a5d7e1c0346aa51b544858de193f734c70e8ff3c135a4e46e41a0e0a877
|
|
| MD5 |
98e01cc275f91932489de90196b5467a
|
|
| BLAKE2b-256 |
445f43c9835effa66d9af8cd1d0c70bcf313990008602ff08f849e5955fc5b3b
|
File details
Details for the file test_report_vibes-0.2.1-py3-none-any.whl.
File metadata
- Download URL: test_report_vibes-0.2.1-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f867d238acfc65ffd60f30b9e21c766249f9f26c75fb091ded4b939c5e425626
|
|
| MD5 |
cfed92bb796ce470c43aab925fa6ff2d
|
|
| BLAKE2b-256 |
33a752625007e02a19531faed11a3ee97fa166a448833544f9469f0c8bf0989f
|