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.0.tar.gz (40.6 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.0-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: allure_report_mailer-0.1.0.tar.gz
  • Upload date:
  • Size: 40.6 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.0.tar.gz
Algorithm Hash digest
SHA256 7c8f2cbd318fa88d9e2d5c99e2fdeee09b0646b216c2fa90f54cdf61ee68c010
MD5 f5410bdb3a159c2601d04780bd2c395c
BLAKE2b-256 c2fd873d331f467d4e85b470e363b385fbff446de3ddc14c4dcaa0da16d792fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for allure_report_mailer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a382b92cb01bf6c5e71a63442ead222ef02fd3236d29bb87b94becfe2c46de9
MD5 e2e5f2eff53d30590ffaefe0b3ccd485
BLAKE2b-256 b165adb25d78dd107ecd99115f943f478a73769d92136b6a70d6ba6b8866b01a

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