Skip to main content

pytest-describe-beautifully

CI PyPI Python

Beautiful terminal and HTML output for pytest-describe.

Transforms pytest-describe's nested test hierarchy into formatted, readable output with real-time results, tree summaries, and self-contained HTML reports.

Installation

pip install pytest-describe-beautifully

Requires Python 3.11+ and pytest-describe 2.0+.

Quick Start

# Enable beautiful terminal output
pytest --describe-beautifully

# Short form
pytest --db

# Generate an HTML report alongside terminal output
pytest --db --describe-html report.html

The plugin only activates when --describe-beautifully (or --db) is passed. Without it, pytest behaves as normal.

Terminal Output

With --db, test results print in real time as they complete, followed by a tree summary at the end:

Calculator
  add
    ✓ it adds two numbers (3ms)
    ✓ it handles negatives (1ms)
  divide
    ✓ it divides evenly (2ms)
    ✗ it raises on zero (1ms)

Summary
┌ Calculator (3/4 passed, 7ms)
├─┬ add (2/2 passed, 4ms)
│ ├── ✓ it adds two numbers (3ms)
│ └── ✓ it handles negatives (1ms)
└─┬ divide (1/2 passed, 3ms)
  ├── ✓ it divides evenly (2ms)
  └── ✗ it raises on zero (1ms)

Outcome Symbols

Symbol Meaning
✓ Passed
✗ Failed
○ Skipped
⊘ Expected failure (xfail)
✗! Unexpected pass (xpass)
☠ Error (setup/teardown)

Slow Test Markers

Tests exceeding the slow threshold get a ⏱ marker:

# Default threshold is 0.5s
pytest --db --describe-slow 1.0

Expanded Mode

Show docstrings and fixtures inline:

pytest --db --describe-expand-all
Calculator
  add
    ✓ it adds two numbers (3ms)
        Verifies basic addition of positive integers
        🔧 calculator, sample_data

Hide fixtures while keeping docstrings:

pytest --db --describe-expand-all --describe-no-fixtures

HTML Reports

Generate a self-contained HTML file with no external dependencies:

pytest --db --describe-html report.html

The report includes:

  • Summary badges -- total tests, passed, failed, skipped, and duration
  • Collapsible describe blocks -- click to expand/collapse, blocks with failures open automatically
  • Interactive controls -- Expand All, Collapse All, and Show Failed Only
  • Test details -- outcome, duration, docstrings, fixtures, and full failure tracebacks
  • Dark theme with semantic color coding

All CLI Options

Flag Default Description
--describe-beautifully / --db off Enable the plugin
--describe-slow SECONDS 0.5 Slow test threshold
--describe-expand-all off Show docstrings and fixtures inline
--describe-no-fixtures off Hide fixtures in expanded mode
--describe-html PATH -- Generate an HTML report at PATH

Name Formatting

The plugin humanizes pytest-describe's naming conventions:

  • describe_MyClass becomes MyClass (CamelCase preserved)
  • describe_my_feature becomes my feature
  • it_does_something becomes it does something
  • they_are_equal becomes they are equal

Development

# Install in development mode
pip install -e ".[dev]"

# Run tests (100% branch coverage enforced)
python -m pytest

# Lint and format
python -m ruff check src/ tests/
python -m ruff format src/ tests/

# Mutation testing
mutmut run

License

MIT

Metadata

Release files for pytest-describe-beautifully 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-describe-beautifully 0.1.0
File Size Uploaded
pytest_describe_beautifully-0.1.0.tar.gz 29.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-describe-beautifully 0.1.0
File Interpreter ABI Platform
pytest_describe_beautifully-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.3 kB

Release files / pytest_describe_beautifully-0.1.0.tar.gz

Download URL pytest_describe_beautifully-0.1.0.tar.gz
Size 29.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f6e4ff38ab848bda6ab3bdd3ed610aed144530f51878ea8f9aaa5b08eddc3a8e
BLAKE2b-256 checksum
How to use checksums
cc6fb23e764ecf21d334b426d9e91e0dba827d7fb1db97c124d645fca928b498
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 28, 2026.

Transparency log

Release files / pytest_describe_beautifully-0.1.0-py3-none-any.whl

Download URL pytest_describe_beautifully-0.1.0-py3-none-any.whl
Size 14.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca709cffd76315be0f11f524bf303d16f287fb3e2afc783075f9e1c0aa962a79
BLAKE2b-256 checksum
How to use checksums
a82c23949819517799c37940810295736fca9e5399359dc35e4d1bed1c5d68e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page