Skip to main content

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_issue and @flaky

Installation

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:

View Sample 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

test_report_vibes-0.2.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

test_report_vibes-0.2.0-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file test_report_vibes-0.2.0.tar.gz.

File metadata

  • Download URL: test_report_vibes-0.2.0.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

Hashes for test_report_vibes-0.2.0.tar.gz
Algorithm Hash digest
SHA256 97c7e513739e0bcd276b4af94dc4919a1c81d2fecc736749b5a4a8639cab58c9
MD5 0e037d47fb7112c15262c2a980ba652c
BLAKE2b-256 9f467bc85a40f23472095041e6164b753ccc7e4a94ccbf8f71d565708c82d97f

See more details on using hashes here.

File details

Details for the file test_report_vibes-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: test_report_vibes-0.2.0-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

Hashes for test_report_vibes-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b7ef088c86af7f1df9bc26d1ce542da2528295cb9d1ca449e8b20d08aea6666
MD5 116889436675ed381de4c3fd8fc26c83
BLAKE2b-256 f69f1e818067b0c4cfbb8b878c13f394e533bed2e558779051649985e830a241

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page