Skip to main content

plaintest

A pytest plugin and CLI tool for managing plain-text test cases with Markdown documentation.

Overview

plaintest helps you bridge the gap between human-readable test case documentation and automated tests. Write your test cases in simple Markdown files, link them to pytest tests using decorators, and generate HTML reports showing test coverage and results.

Rationale

Many teams struggle with test documentation scattered across multiple systems: requirements in Jira, test cases in TestRail, implementation details in code comments. This fragmentation makes it hard to understand what's being tested and why. By keeping test cases as Markdown files in your repository alongside your code, you maintain a single source of truth that's version-controlled, code-review friendly, and easily accessible to both humans and LLMs.

Changes to test specifications go through the same PR process as code changes, ensuring consistency and traceability.

Installation

pip install plaintest

Or with uv:

uv add plaintest

Quick Start

  1. Initialize your test cases directory:
plaintest init
  1. Create a test case:
plaintest add "User login functionality"

This creates a Markdown file like test-cases/001/case.md:

---
title: User login functionality
tags: []
---

## Steps


## Expected

Tip: Create a .template file in your test cases directory to customize the template using Jinja2 syntax.

  1. Link a pytest test to the test case:
import pytest

@pytest.mark.tc("001")
def test_user_login():
    # Your test implementation
    assert True
  1. Generate a coverage report:
plaintest coverage

Configuration

Add configuration to your pyproject.toml:

[tool.plaintest]
test_cases_dir = "test-cases"

Commands

  • plaintest init - Initialize test cases directory
  • plaintest add [TITLE] - Interactively add new test case(s)
  • plaintest coverage - Generate terminal-based coverage report
  • plaintest report - Generate side-by-side HTML report

License

MIT

Metadata

Release files for plaintest 0.2.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 plaintest 0.2.0
File Size Uploaded
plaintest-0.2.0.tar.gz 14.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plaintest 0.2.0
File Interpreter ABI Platform
plaintest-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / plaintest-0.2.0.tar.gz

Download URL plaintest-0.2.0.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f42edb1d5e5c9e95042343b07d021402494e225626bd9d8595fd5c337872214d
BLAKE2b-256 checksum
How to use checksums
7298a214d7b495fc3730ffef98c11085f37a189f90ef299beaaeaf0ff486cfc3
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 Feb 8, 2026.

Transparency log

Release files / plaintest-0.2.0-py3-none-any.whl

Download URL plaintest-0.2.0-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8e9813c4d52336e3505f40034bf105d9072b653b486c2149c43e2e802d005b9
BLAKE2b-256 checksum
How to use checksums
64f45c1e66b2288bd9a3579b41e2b8bdd7ac10bc63c6644540bf45945df46d0a
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 Feb 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

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