skillfed

pytest-tap

Test Anything Protocol (TAP) reporting plugin for pytest

pytest-tap v3.5 196.3K downloads/30d#9,789 on PyPI
Permissive license BSD DORMANT released

What it is and what it does

pytest-tap is a pytest plugin that converts test results into Test Anything Protocol (TAP) format, a line-based standard for recording test outcomes. Instead of pytest's default output, running pytest with the --tap flag produces TAP-compliant output that can be parsed by other tools and integrated into CI/CD pipelines or test aggregation systems.

The plugin handles pytest's test lifecycle—including setup failures, xfail/skip directives, and test capture (stdout, stderr, logs)—and translates it into TAP's simple format. It depends on pytest for test discovery and execution, and tap-py for TAP serialization. Recent releases added support for Python 3.12 and 3.13, and enhanced diagnostics output for failed tests.

Use it for:

  • Export pytest results to TAP format for consumption by CI/CD systems or test aggregation tools that expect TAP input.
  • Standardize test reporting across projects that mix pytest with other test frameworks that already output TAP.
  • Generate machine-readable test logs that can be parsed and analyzed by downstream reporting or monitoring systems.
  • Capture and display logs, stdout, and stderr for failed tests in TAP diagnostics using the --show-capture flag.
  • Integrate pytest test results into test management or quality dashboards that consume TAP streams.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

pytest-tap outputs test results in Test Anything Protocol (TAP) format, a standardized line-based protocol for recording and reporting test data across tools and environments.

Yes, if you need TAP output for CI/CD integration or test aggregation. The plugin is stable and has low friction, but maintenance is dormant—verify that TAP output format meets your downstream tool requirements before adopting. No known security issues.

Install

pytest-tap on PyPI

pip

pip install pytest-tap

uv

uv add pytest-tap

poetry

poetry add pytest-tap

Installing pytest-tap

Before you install

Low install friction with just two runtime dependencies (pytest and tap-py). Maintenance is dormant—last release was 561 days ago—but the package is marked Production/Stable and supports current Python versions (3.9–3.13).

License in practice

BSD license is permissive, allowing commercial and private use with minimal restrictions.

Quickstart

pip install pytest-tap

pytest --tap

Requires Python 3.9 or later.

Verify before relying

  • Whether dormant maintenance status affects compatibility with future pytest releases.
  • Whether TAP output format is compatible with downstream tools and CI/CD systems you use.

Package facts

License BSD (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 2 — pytest, tap-py
Maintenance dormant — 561 days since the last release
First released
Downloads 196,276/month — #9,789 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pytest_tap-3.5-py3-none-any.whl

Keywords: TAP, pytest, unittest

Development Status :: 5 - Production/StableFramework :: PytestIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Testing

Tags

TAP test reportingpytest TAP outputtest anything protocolpytest result formattingtest result standardizationpytest plugin reportingTAP stream output
test-reportingci-cd-integration

More Testing packages