Git-native test case management
Project description
Testla
Git-native test case management for modern development workflows.
What is Testla?
Testla stores test cases as Markdown files in your repository, making them:
- Version controlled - Cases branch, merge, and have history like code
- PR reviewable - Test case changes appear alongside code changes
- CI-native - No external service required to access test definitions
Quick Start
# Install
pip install testla
# Initialize in your repo
testla init --name "My Project"
# Create a test case
testla case new auth/login --title "User can login"
# List cases
testla case list
Test Case Format
Cases live in testla/cases/ as Markdown with YAML frontmatter:
---
id: TC001
title: User can login with valid credentials
priority: high
tags: [auth, smoke]
automation:
status: automated
test_path: tests/test_auth.py::test_valid_login
---
## Preconditions
- User account exists
## Steps
1. Navigate to login page
2. Enter valid credentials
## Expected Result
User sees dashboard
pytest Integration
Link automated tests to cases using the @pytest.mark.testla marker:
import pytest
@pytest.mark.testla("TC001")
def test_user_can_login():
...
Run tests and see the Testla report:
pytest -m testla -v
Configuration
Add to your pyproject.toml:
[tool.testla]
project_name = "My Project"
case_id_prefix = "TC"
case_id_digits = 3
Development
# Clone and install
git clone https://github.com/m1yag1/testla.git
cd testla
uv sync --group dev
# Run tests
uv run pytest tests/ -v
# Format and lint
uv run ruff format .
uv run ruff check .
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file testla-0.1.1.tar.gz.
File metadata
- Download URL: testla-0.1.1.tar.gz
- Upload date:
- Size: 98.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f295d9a09615ec908dc93c65af98c93f94a72e84a808ec92f7fac8d085bcadc
|
|
| MD5 |
cf08449a1ba9117ec50fe93dd2496a6a
|
|
| BLAKE2b-256 |
013b6211ef2db49fc2ec4b7454fd3ec04d2cecca8cd572a6c71cf05c8bee30aa
|
File details
Details for the file testla-0.1.1-py3-none-any.whl.
File metadata
- Download URL: testla-0.1.1-py3-none-any.whl
- Upload date:
- Size: 31.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2c5adb11fd3f4461e2c1157342061b2586431a2e0467bcbadcdeb75a8a21e88
|
|
| MD5 |
5b0da2ce774b1c17d96cbe10d33fb8b4
|
|
| BLAKE2b-256 |
f6223f03405c15d779358053b0655b34884a56201fa663070ddda6ec82081a4c
|