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 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:

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.1.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.1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

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

Hashes for test_report_vibes-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4e2e0a5d7e1c0346aa51b544858de193f734c70e8ff3c135a4e46e41a0e0a877
MD5 98e01cc275f91932489de90196b5467a
BLAKE2b-256 445f43c9835effa66d9af8cd1d0c70bcf313990008602ff08f849e5955fc5b3b

See more details on using hashes here.

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

Hashes for test_report_vibes-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f867d238acfc65ffd60f30b9e21c766249f9f26c75fb091ded4b939c5e425626
MD5 cfed92bb796ce470c43aab925fa6ff2d
BLAKE2b-256 33a752625007e02a19531faed11a3ee97fa166a448833544f9469f0c8bf0989f

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