pytest-md-report
A pytest plugin to generate test outcomes reports with markdown table format.
What it is and what it does
pytest-md-report is a pytest plugin that captures test execution results and formats them as markdown tables instead of the default pytest output. It runs as a pytest hook during test collection and reporting, generating a structured markdown file or stdout report that summarizes pass/fail/error/skip/xfail/xpass counts by file, function, or parameter.
The plugin integrates with pytest's standard execution flow and supports multiple output modes: file-based reports, GitHub Flavored Markdown flavor, verbosity levels (per-file, per-function, per-parameter), custom columns extracted from pytest marks, execution duration tracking, and filtering by test outcome. Configuration can be set via command-line flags or in pyproject.toml/setup.cfg. Its dependencies—pytablewriter for markdown table generation, tcolorpy for optional color output, and typepy for type handling—are all lightweight utilities.
Use it for:
- Generate test summary tables for CI/CD pipelines and post them to pull requests as status comments.
- Create readable test reports for stakeholders by rendering markdown tables with pass/fail counts per test file.
- Track test execution duration per test case and identify performance regressions across runs.
- Render custom test metadata (e.g., test IDs, priority levels) as columns in reports using pytest marks.
- Exclude specific test outcomes (passed, skipped, xpassed) from reports to focus on failures and errors.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A pytest plugin that generates test outcome reports formatted as markdown tables, with options for verbosity, custom columns from test marks, execution duration tracking, and multiple markdown flavors.
Yes. The plugin is actively maintained, has no security vulnerabilities, uses a permissive MIT license, and solves a concrete problem—converting pytest output into readable markdown tables for documentation and CI/CD workflows. Low install friction and broad Python version support (3.10–3.14) make it a straightforward addition to test infrastructure.
Install
pytest-md-report on PyPI
pip
pip install pytest-md-reportuv
uv add pytest-md-reportpoetry
poetry add pytest-md-reportInstalling pytest-md-report
Before you install
Low friction: pure Python wheel with four runtime dependencies (pytablewriter, pytest, tcolorpy, typepy). Active maintenance, last commit 2026-07-20, no known vulnerabilities.
License in practice
MIT License (permissive): free to use, modify, and distribute with minimal restrictions. Suitable for both open-source and commercial projects.
Quickstart
pip install pytest-md-report
pytest --md-report examples/
# With verbosity and custom output:
pytest --md-report --md-report-verbose=1 --md-report-output report.md examples/
Requires Python 3.10 or later; pytest must be installed in the same environment.
Verify before relying
- Whether the plugin works with pytest plugins that also generate custom output or modify test collection.
- Performance impact when running large test suites with high verbosity or many custom mark columns.
Package facts
| License | MIT License (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — pytablewriter, pytest, tcolorpy, typepy |
| Maintenance | actively maintained — 102 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 398,484/month — #6,953 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pytest_md_report-0.8.0-py3-none-any.whl
Keywords: pytest, plugin, markdown
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
pytest-mdGenerates Markdown test reports from pytest…
permissive · top 15,000 on PyPI
pytest-htmlGenerates HTML reports for pytest test results,…
copyleft · top 1,000 on PyPI
pytest-custom-reportA pytest plugin that lets you customize the…
permissive · top 15,000 on PyPI
pytest-prettyA pytest plugin that formats test output with…
permissive · top 5,000 on PyPI
pytest-github-actions-annotate-failuresA pytest plugin that automatically annotates…
permissive · top 5,000 on PyPI
pytest-excelA pytest plugin that generates Excel reports…
permissive · top 15,000 on PyPI
pytest-csvA pytest plugin that exports test results to…
copyleft · top 15,000 on PyPI
pytest-reportlogWrites pytest test results to a JSON Lines file…
permissive · top 15,000 on PyPI
pytest-json-reportA pytest plugin that generates JSON-formatted…
permissive · top 5,000 on PyPI
pytest-progressA pytest plugin that displays real-time test…
permissive · top 15,000 on PyPI