Skip to main content

Human-friendly pytest test reports with optional LLM annotations

Project description

pytest-llm-report

CI CodeQL Snyk Security Docs codecov PyPI version Python Versions License Dependabot pytest plugin

Human-friendly pytest test reports with optional LLM annotations.

Features

  • Test inventory with status (pass/fail/skip/xfail) and duration
  • Per-test covered files and line ranges (using pytest-cov + coverage contexts)
  • Per-file source coverage summary (covered/missed/percentage)
  • Optional LLM-generated annotations:
    • Scenario: What the test verifies
    • Why needed: What regression/bug it prevents
    • Key assertions: Critical checks performed
  • HTML and JSON output formats
  • Dark mode support (auto-detects system preference)
  • Optional PDF generation
  • Detailed Versioning: Reports include exact plugin and repository versions (plus Git SHA/dirty status) for reproducibility
  • Aggregation across multiple test runs (see Aggregation)

Installation

pip install pytest-llm-report

Or with uv:

uv add pytest-llm-report

Optional Dependencies

Install additional features as needed:

# Ollama provider
pip install pytest-llm-report[ollama]

# Gemini provider
pip install pytest-llm-report[gemini]

# LiteLLM provider (supports OpenAI, Anthropic, etc.)
pip install pytest-llm-report[litellm]

# PDF generation
pip install pytest-llm-report[pdf]

# All features
pip install pytest-llm-report[all]

With uv:

uv add "pytest-llm-report[ollama]"  # or gemini, litellm, pdf, all

Quick Start

Run pytest with coverage contexts enabled:

pytest --cov=your_package --cov-context=test --llm-report=report.html

Configuration

Configure via pyproject.toml:

[tool.pytest_llm_report]
provider = "none"  # "none", "ollama", "litellm", or "gemini"
report_json = "reports/pytest_llm_report.json"

Documentation

📖 Full documentation: palakpsheth.github.io/pytest-llm-report

Requirements

  • Python 3.11+
  • pytest >= 7.0.0
  • pytest-cov >= 4.0.0

Contributing

Contributions are welcome! Please see:

License

MIT

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_llm_report-0.2.0.tar.gz (111.0 kB view details)

Uploaded Source

Built Distribution

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

pytest_llm_report-0.2.0-py3-none-any.whl (68.6 kB view details)

Uploaded Python 3

File details

Details for the file pytest_llm_report-0.2.0.tar.gz.

File metadata

  • Download URL: pytest_llm_report-0.2.0.tar.gz
  • Upload date:
  • Size: 111.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pytest_llm_report-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3570a068ba6fc2c474cfad271f7baccab9402b8bd512082db7d0943c229b8619
MD5 3cbe1af99691ff7198e929b1ef931721
BLAKE2b-256 5309feee340ed3455ea2b1769975cec4ad1bbddafee9a2e0492260b8b80fd95f

See more details on using hashes here.

File details

Details for the file pytest_llm_report-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_llm_report-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 68.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pytest_llm_report-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6eb7fd0c223f800dbd3fe594034404747260e4406a90cf3206204d9dd0de8ed
MD5 35faa5003e9611e6c31350a746126d8f
BLAKE2b-256 96f272233d80f0f2046d7395c340ff3b9be1e42b64e656f15a20150cbf23fc36

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