# π§ͺ pytest-reporter-plus - A Single page, actionable, plug-and-play unified Test Reports:
## Get a single, easy-to-read HTML report summarizing all your test results β no hassle, just clarity. Detect **flaky tests**, and optionally send reports via email**. Works beautifully with or without `xdist`.
[](https://pepy.tech/projects/pytest-reporter-plus)    [](https://github.com/reach2jeyan/pytest-report-plus/actions/workflows/unit-test.yml)
## π Installation
```bash
pip install pytest-reporter-plus
# or with Poetry
poetry add pytest-reporter-plus
```
## π§Ύ Usage
Generate HTML + JSON reports:
```bash
pytest
```
If you are running with xdist
```commandline
pytest -n numberOfWorkers
```
Youβll get:
report.html β a clean, styled HTML report
---
## Available Options
| Option | Description | Default | Choices |
|-------------------------|-----------------------------------------------------|---------------------|-----------------------------------|
| `--json-report` | Path to save individual JSON test reports | `final_report.json` | *Any valid file path* |
| `--capture-screenshots` | When to capture screenshots | `failed` | `failed`, `all`, `none` |
| `--html-output` | Directory to output HTML reports | `report_output` | *Any valid directory* |
| `--screenshots` | Directory where screenshots will be stored | `screenshots` | *Any valid directory* |
| `--send-email` | Send HTML report via email after the test run | `False` | `True`, `False` |
| `--should-open-report` | Open your HTML report automatically post completion | `failed` | `always`, `failed`, `never` |
| `--generate-xml` | Easily generate combined xml of all runs | `False` | `False`, `True` |
| `--xml-report` | Path to output the XML report (used with --generate-xml) | `None` | *Any valid file path* |
---
# Keep using your regular pytest commands β just plug this in to unlock the below powerful reporting features with zero extra effort.
## β¨ Features
#### π§© Seamless Combined XML Export to your favourite test management tools β No Plugins Needed
Export a fully merged JUnit XML report effortlessly β no external tools or plugins required. (No More merge html additional plugins or steps in your YAML to feed xml reports)
β Links, logs, stdout/stderr, and even flaky history β all included
β Works out-of-the-box with your test management tools (like TestRail, XRay, Zephyr)
β Just one flag. No extra lines of code. Total traceability.

#### Easily track Untracked test scenarios

#### π Flaky Test Detection: Automatically flags flaky tests so you can spot and fix inconsistent failures quickly.

#### πΈ Screenshot Support: View screenshots directly in the report to understand failures faster.
#### π§ Email Test Reports: Send your reports via email effortlessly using SendGrid integration.

#### π’ Spot Slow Tests: Highlights the slowest tests so you know where to optimize your suite.

#### π Comprehensive output capture: All your test logs with loggers, print() statements, and screenshots are automatically captured and embedded in the report...

#### π Universal Test Search + Smart Link Navigation
Whether you're trying to trace coverage or track unlinked test cases β this search has your back!
Just start typing, and the dashboard will instantly filter tests by:
β
Test name
β
Linked issue/documentation IDs (like JIRA, Testmo, Notion, etc.)
β
Custom URLs or keywords present in the links

### AND MANY MANY MORE
## Target Audience
This plugin is aimed at those who are:
- Tired of writing extra code just to generate reports or capture screenshots
- Manually attaching logs or outputs to test results
- Are frustrated with archiving folders full of assets, CSS, JS, and dashboards just to share test results.
- Donβt want to refactor existing test suites or tag everything with new decorators just to integrate with a reporting tool.
- Prefer simplicity β a zero-config, zero code, lightweight report that still looks clean, useful, and polished.
- Want βjust enoughβ β not bare-bones plain text, not a full dashboard with database setup β just a portable HTML report that STILL supports features like links, screenshots, and markers.
## Comparison with Alternatives
Most existing pytest reporter tools:
Only generate HTML reports from a single run (by making you write code for creating xmls like pytest-html) OR they generate all the JS and png files that are not the scope of test results and force you to archive it.
Heavy duty with bloated charts and other test management features(when they arent your only test management system either) increasing your archive size.
This plugin aims to fill those gaps by acting as a companion layer on top of the JSON report, focusing on:
π Merge + flakiness intelligence
π Traceability via metadata
π§Ό HTML thatβs both readable and minimal
π§Ό Quickly copy test paths and run in your local
## π§ Email Report (Optional)
Send the HTML report via email using --send-email. Please note you will need your own sendgrid setup to use this feature
Create an emailenv file in your project folder that has the following
```commandline
sender_email=you@example.com
recipient_email=team@example.com
report_path=report.html
subject=Your Test Report
smtp_server=smtp.sendgrid.net
smtp_port=587
email_password=your_sendgrid_api_key
```
## Run
```commandline
pytest --send-email
```
## Contributions
We welcome pull requests, issues, and feature suggestions from the community.
Before contributing, please take a moment to review our contribution guidelines and code of conduct.
Your involvement helps make this tool better for everyone!
### Setting up the project is pretty simple
```
docker build -t pytest-reporter-plus .
docker run -it pytest-reporter-plus /bin/bash
poetry install --dev
poetry run pytest tests/
```
## π License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "pytest-reporter-plus",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "pytest, html-report, pytest-plugin, test-report, test-results, test-summary, reporting, python-testing, automated-testing, test-runner, report-generator, continuous-integration, ci-cd, pytest-html, pytest-report",
"author": "Emjey",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/e9/d2/21222b1f5fd67241bfbaadf28bf8555e73c0865c0831291ba8b80f0f8f55/pytest_reporter_plus-0.3.2.tar.gz",
"platform": null,
"description": "# \ud83e\uddea pytest-reporter-plus - A Single page, actionable, plug-and-play unified Test Reports:\n\n## Get a single, easy-to-read HTML report summarizing all your test results \u2014 no hassle, just clarity. Detect **flaky tests**, and optionally send reports via email**. Works beautifully with or without `xdist`.\n\n[](https://pepy.tech/projects/pytest-reporter-plus)    [](https://github.com/reach2jeyan/pytest-report-plus/actions/workflows/unit-test.yml)\n\n\n## \ud83d\ude80 Installation\n\n```bash\npip install pytest-reporter-plus\n# or with Poetry\npoetry add pytest-reporter-plus\n```\n\n## \ud83e\uddfe Usage\n\nGenerate HTML + JSON reports:\n\n```bash\npytest\n```\n\nIf you are running with xdist\n\n```commandline\npytest -n numberOfWorkers\n```\n\nYou\u2019ll get:\n\nreport.html \u2013 a clean, styled HTML report\n\n---\n\n## Available Options\n\n| Option | Description | Default | Choices |\n|-------------------------|-----------------------------------------------------|---------------------|-----------------------------------|\n| `--json-report` | Path to save individual JSON test reports | `final_report.json` | *Any valid file path* |\n| `--capture-screenshots` | When to capture screenshots | `failed` | `failed`, `all`, `none` |\n| `--html-output` | Directory to output HTML reports | `report_output` | *Any valid directory* |\n| `--screenshots` | Directory where screenshots will be stored | `screenshots` | *Any valid directory* |\n| `--send-email` | Send HTML report via email after the test run | `False` | `True`, `False` |\n| `--should-open-report` | Open your HTML report automatically post completion | `failed` | `always`, `failed`, `never` |\n| `--generate-xml` | Easily generate combined xml of all runs | `False` | `False`, `True` |\n| `--xml-report` | Path to output the XML report (used with --generate-xml) | `None` | *Any valid file path* |\n\n\n---\n\n# Keep using your regular pytest commands \u2014 just plug this in to unlock the below powerful reporting features with zero extra effort.\n\n## \u2728 Features\n\n#### \ud83e\udde9 Seamless Combined XML Export to your favourite test management tools \u2014 No Plugins Needed\nExport a fully merged JUnit XML report effortlessly \u2014 no external tools or plugins required. (No More merge html additional plugins or steps in your YAML to feed xml reports)\n\n\u2714 Links, logs, stdout/stderr, and even flaky history \u2014 all included\n\u2714 Works out-of-the-box with your test management tools (like TestRail, XRay, Zephyr)\n\u2714 Just one flag. No extra lines of code. Total traceability.\n\n\n\n\n\n#### Easily track Untracked test scenarios\n\n\n\n\n#### \ud83d\udd04 Flaky Test Detection: Automatically flags flaky tests so you can spot and fix inconsistent failures quickly.\n\n\n\n#### \ud83d\udcf8 Screenshot Support: View screenshots directly in the report to understand failures faster.\n\n#### \ud83d\udce7 Email Test Reports: Send your reports via email effortlessly using SendGrid integration.\n\n\n\n#### \ud83d\udc22 Spot Slow Tests: Highlights the slowest tests so you know where to optimize your suite.\n\n\n\n#### \ud83d\udcdd Comprehensive output capture: All your test logs with loggers, print() statements, and screenshots are automatically captured and embedded in the report...\n\n\n\n\n#### \ud83d\udd0d Universal Test Search + Smart Link Navigation\n\nWhether you're trying to trace coverage or track unlinked test cases \u2014 this search has your back!\n\nJust start typing, and the dashboard will instantly filter tests by:\n\n\u2705 Test name\n\n\u2705 Linked issue/documentation IDs (like JIRA, Testmo, Notion, etc.)\n\n\u2705 Custom URLs or keywords present in the links\n\n\n\n\n\n### AND MANY MANY MORE\n\n## Target Audience\n\nThis plugin is aimed at those who are:\n\n- Tired of writing extra code just to generate reports or capture screenshots\n\n- Manually attaching logs or outputs to test results\n\n- Are frustrated with archiving folders full of assets, CSS, JS, and dashboards just to share test results.\n\n- Don\u2019t want to refactor existing test suites or tag everything with new decorators just to integrate with a reporting tool.\n\n- Prefer simplicity \u2014 a zero-config, zero code, lightweight report that still looks clean, useful, and polished.\n\n- Want \u201cjust enough\u201d \u2014 not bare-bones plain text, not a full dashboard with database setup \u2014 just a portable HTML report that STILL supports features like links, screenshots, and markers.\n\n\n## Comparison with Alternatives\nMost existing pytest reporter tools:\n\nOnly generate HTML reports from a single run (by making you write code for creating xmls like pytest-html) OR they generate all the JS and png files that are not the scope of test results and force you to archive it.\n\nHeavy duty with bloated charts and other test management features(when they arent your only test management system either) increasing your archive size.\n\nThis plugin aims to fill those gaps by acting as a companion layer on top of the JSON report, focusing on:\n\n\ud83d\udd04 Merge + flakiness intelligence\n\n\ud83d\udd17 Traceability via metadata\n\n\ud83e\uddfc HTML that\u2019s both readable and minimal\n\n\ud83e\uddfc Quickly copy test paths and run in your local\n\n## \ud83d\udce7 Email Report (Optional)\n\nSend the HTML report via email using --send-email. Please note you will need your own sendgrid setup to use this feature\n\nCreate an emailenv file in your project folder that has the following\n\n```commandline\nsender_email=you@example.com\nrecipient_email=team@example.com\nreport_path=report.html\nsubject=Your Test Report\nsmtp_server=smtp.sendgrid.net\nsmtp_port=587\nemail_password=your_sendgrid_api_key\n\n```\n\n## Run\n\n```commandline\npytest --send-email\n```\n\n## Contributions\n\nWe welcome pull requests, issues, and feature suggestions from the community. \nBefore contributing, please take a moment to review our contribution guidelines and code of conduct. \nYour involvement helps make this tool better for everyone!\n\n### Setting up the project is pretty simple\n\n```\ndocker build -t pytest-reporter-plus .\ndocker run -it pytest-reporter-plus /bin/bash \npoetry install --dev\n\npoetry run pytest tests/ \n```\n\n\n## \ud83d\udcdc License\n\nMIT\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Lightweight enhanced HTML reporter for Pytest",
"version": "0.3.2",
"project_urls": {
"Homepage": "https://github.com/reporterplus/pytest-report-plus",
"Source": "https://github.com/reporterplus/pytest-report-plus",
"Tracker": "https://github.com/reporterplus/pytest-report-plus/issues"
},
"split_keywords": [
"pytest",
" html-report",
" pytest-plugin",
" test-report",
" test-results",
" test-summary",
" reporting",
" python-testing",
" automated-testing",
" test-runner",
" report-generator",
" continuous-integration",
" ci-cd",
" pytest-html",
" pytest-report"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "77c26a96b37b8a65664062d8676ccf73c9ba6357e5e169e5bf79091be484f996",
"md5": "334406d63687f2b4050d69a9d11bbba3",
"sha256": "0ab7c8885062c10c9dc0899430f60faa93ed254af338a7802ade90d6f77cb9b1"
},
"downloads": -1,
"filename": "pytest_reporter_plus-0.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "334406d63687f2b4050d69a9d11bbba3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 20109,
"upload_time": "2025-07-09T04:20:51",
"upload_time_iso_8601": "2025-07-09T04:20:51.068242Z",
"url": "https://files.pythonhosted.org/packages/77/c2/6a96b37b8a65664062d8676ccf73c9ba6357e5e169e5bf79091be484f996/pytest_reporter_plus-0.3.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e9d221222b1f5fd67241bfbaadf28bf8555e73c0865c0831291ba8b80f0f8f55",
"md5": "5befe75bd6ca9f5b2ab10726c3afb7b1",
"sha256": "e703ad5183d70c0c2f9c6779920819b19abe236ee0bdb956b55aca6106ca4dd4"
},
"downloads": -1,
"filename": "pytest_reporter_plus-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "5befe75bd6ca9f5b2ab10726c3afb7b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 19960,
"upload_time": "2025-07-09T04:20:52",
"upload_time_iso_8601": "2025-07-09T04:20:52.409970Z",
"url": "https://files.pythonhosted.org/packages/e9/d2/21222b1f5fd67241bfbaadf28bf8555e73c0865c0831291ba8b80f0f8f55/pytest_reporter_plus-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 04:20:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "reporterplus",
"github_project": "pytest-report-plus",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pytest-reporter-plus"
}