Skip to main content

Parse Allure BDD HTML test reports into Excel/HTML summaries and email them.

Project description

allure-report-mailer

Parse Allure BDD HTML test reports into Excel/HTML summaries and email them.

Three stages, each usable independently or chained via a pipeline command:

  1. parse — reads Allure HTML report artifacts (widgets/summary.json, widgets/environment.json, data/test-cases/*.json embedded in each report), aggregates by (ID, FileName), dedupes to one row per test ID keeping the most recent run, and writes test_runtime_data.xlsx + test_env.json.
  2. render — renders test_runtime_data.xlsx into a standalone, timestamped HTML report with client-side filter/sort, a color palette, and a configurable title.
  3. email — finds the most recently generated HTML report and emails a compact, Outlook-safe summary (stats table + environment table) via SMTP, with the full report attached as a .zip.

Install

pip install allure-report-mailer

Usage

# Run all three stages in sequence
allure-report-mailer pipeline /path/to/allure/artifacts --output-dir ./out

# Or run each stage independently
allure-report-mailer parse /path/to/allure/artifacts --output-dir ./out
allure-report-mailer render ./out/test_runtime_data.xlsx ./out --report-title "My Regression Report"
allure-report-mailer email --report-dir ./out

Run allure-report-mailer --help, or allure-report-mailer <subcommand> --help for full option lists.

Email configuration

Secrets are read only from environment variables (never CLI flags, never hardcoded):

Variable Required Default
EMAIL_USER / EMAIL_PASS Yes none
EMAIL_FROM No falls back to EMAIL_USER
EMAIL_TO Yes none (comma-separated)
EMAIL_CC No none (comma-separated)
SMTP_HOST No smtp.azurecomm.net
SMTP_PORT No 587
REPORT_DIR No current directory

The email's title, subject template, greeting/intro/closing copy, and environment-field labels can be overridden without touching source via --email-config path/to/config.json:

{
  "report_title": "Weekly Regression Report",
  "subject_template": "{report_title} - {date}",
  "email_body": {
    "greeting": "Hi Team,",
    "intro": "Please find below the test execution summary for the week of {date}."
  }
}

Only the keys you want to override need to be present — everything else falls back to the built-in defaults (see allure_report_mailer/config.py).

Development

pip install -e ".[dev]"
pytest --cov=allure_report_mailer --cov-report=term-missing

See SETUP.md for build/release steps.

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

allure_report_mailer-0.1.3.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

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

allure_report_mailer-0.1.3-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file allure_report_mailer-0.1.3.tar.gz.

File metadata

  • Download URL: allure_report_mailer-0.1.3.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for allure_report_mailer-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c9e83924d561054653ef994179d2fc5913304b63d0cc291f8fe06793025d400c
MD5 6d48e257ba1d9caac6ec4cf7103e2ee1
BLAKE2b-256 668bf9fa0c8cd70f88bd6d004dcb21a6ec4e8bc586e633476595c46f881e35b8

See more details on using hashes here.

File details

Details for the file allure_report_mailer-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for allure_report_mailer-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 faed8fdda062b227b1db7fcc33817ccd58a7a629244e2cadb0f57517a9066808
MD5 04ac4d9d1eb93f11f0ee55828cbf3175
BLAKE2b-256 d1db67ab6a5fbd066195dad152e16122c58dccb077c6205585959e82c4c7e266

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