Skip to main content

Markdown test report formatter for pytest-bdd with pytest-playwright screenshot support

Project description

pytest-bdd-md-report

Markdown test report formatter for pytest-bdd with pytest-playwright screenshot support.

Installation

pip install pytest-bdd-md-report

Or with uv:

uv add pytest-bdd-md-report

Optional dependencies

# With pytest-playwright support (for screenshot capture)
pip install pytest-bdd-md-report[playwright]

# With pytest-bdd support
pip install pytest-bdd-md-report[bdd]

# All optional dependencies
pip install pytest-bdd-md-report[all]

Quick Start

# Generate a markdown report
pytest --markdown-report=test_report.md

# Include detailed step information (Given/When/Then)
pytest --markdown-report=test_report.md --markdown-report-verbose

# Include screenshots for failed tests (requires pytest-playwright)
pytest --markdown-report=test_report.md --markdown-report-screenshots --screenshot=only-on-failure

CLI Options

Option Description
--markdown-report=path Output path for the Markdown report (required to enable)
--markdown-report-verbose Include detailed step information (Given/When/Then)
--markdown-report-template=path Custom Jinja2 template file path
--markdown-report-screenshots Embed failure screenshots in report
--markdown-report-embed-images Base64 encode screenshots directly in markdown

Output Example

Basic Mode

## Summary
- **Total Tests**: 3
- **Passed**: 2
- **Failed**: 1

## Test Results

### Feature: Login

#### [PASS] Scenario: Successful login
- **Status**: PASSED
- **Duration**: 1.73s

Verbose Mode (--markdown-report-verbose)

#### [PASS] Scenario: Successful login
- **Status**: PASSED
- **Duration**: 1.73s

**Steps:**
1. [PASS] **Given** the login page is displayed (0.45s)
2. [PASS] **When** user enters valid credentials (0.98s)
3. [PASS] **Then** dashboard is shown (0.30s)

Custom Templates

Create a custom Jinja2 template to customize the report format.

Template Variables

Variable Type Description
generation_time str Report generation timestamp
summary.total_tests int Total test count
summary.passed int Passed count
summary.failed int Failed count
summary.skipped int Skipped count
summary.total_duration str Total execution time
features dict Feature name to scenario list mapping

Example Custom Template

# Test Report

Generated: {{ generation_time }}

| Metric | Value |
|--------|-------|
| Total | {{ summary.total_tests }} |
| Passed | {{ summary.passed }} |
| Failed | {{ summary.failed }} |

{% for feature_name, scenarios in features.items() %}
## {{ feature_name }}

{% for scenario in scenarios %}
- **{{ scenario.scenario_name }}**: {{ scenario.status }}
{% endfor %}
{% endfor %}

Screenshot Support

Capture screenshots for failed tests using pytest-playwright:

# Screenshots saved as file references
pytest --markdown-report=test_report.md --markdown-report-screenshots --screenshot=only-on-failure

# Screenshots embedded as Base64 (single-file report)
pytest --markdown-report=test_report.md --markdown-report-screenshots --markdown-report-embed-images --screenshot=only-on-failure

Note: --screenshot=only-on-failure is a pytest-playwright option. Screenshots are saved to test-results/ directory.

Requirements

  • Python >= 3.10
  • pytest >= 7.0.0
  • jinja2 >= 3.1.0

Optional

  • pytest-bdd >= 6.0.0 (for BDD-style tests)
  • pytest-playwright >= 0.4.0 (for screenshot capture)

License

MIT License

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

pytest_bdd_md_report-1.0.2.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

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

pytest_bdd_md_report-1.0.2-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file pytest_bdd_md_report-1.0.2.tar.gz.

File metadata

  • Download URL: pytest_bdd_md_report-1.0.2.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pytest_bdd_md_report-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b78c57dcffdcf57f595ff10b5fb561db788a5a9c1ff1cac791389ea1584658dc
MD5 205b18edddd22fa4d68b9dc54776f285
BLAKE2b-256 5ab3bdd8f7a3c96c8183012a704510ada2131146d3ed8638a5b01021900b5a24

See more details on using hashes here.

File details

Details for the file pytest_bdd_md_report-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_bdd_md_report-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 83d2ccf12d5dc66a922575b07ac369649c63f38f2950f742856ee97937a18364
MD5 b1b418e6ad5732e3fe65c27b30653844
BLAKE2b-256 623403e058c4d482fb4b01141e35a75f849fe17432288addf46b9eeca0ffda27

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