TraceCov
Schema-level API coverage down to individual keywords.
Your API tests pass. But did you actually test the validation rules?
Hitting POST /users with {"name": "Alice", "age": 30} gives you 100% endpoint coverage—but you haven't tested empty names, negative ages, or strings that are too long.
TraceCov measures coverage at the schema keyword level: minLength, pattern, enum, minimum - not just endpoints.
Install
pip install tracecov
Quick Start
import tracecov
import requests
# Load your OpenAPI schema
coverage = tracecov.CoverageMap.from_path("openapi.json")
# Wrap your session to track requests
session = coverage.requests.track_session(requests.Session())
# Run your tests as usual
session.post("https://api.example.com/users", json={"name": "Alice"})
session.get("https://api.example.com/users/123")
# Generate the report
coverage.save_report()
What It Tracks
| Dimension | What it measures |
|---|---|
| Operations | HTTP method + path combinations called |
| Parameters | Path, query, header, cookie, body coverage |
| Keywords | JSON Schema validation rules (minLength, pattern, etc.) |
| Examples | Schema examples and defaults used |
| Responses | HTTP status codes returned |
Documentation
Feedback
Help shape TraceCov: 2-minute survey
Professional Edition
For advanced features, contact info@tracecov.sh.
Release files for tracecov 0.24.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tracecov-0.24.0.tar.gz | 18.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tracecov-0.24.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.9 kB
Release files / tracecov-0.24.0.tar.gz
| Download URL | tracecov-0.24.0.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d83a409c455eeafad122bc72c69ba3fec3a6cfe7b10a263b2f23fcb4fbd1133a
|
|
BLAKE2b-256 checksum How to use checksums |
b08864a1a7d60317043fa366d040cfe3a2ca65725b2e1bbcbf647e23c2a9be93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / tracecov-0.24.0-py3-none-any.whl
| Download URL | tracecov-0.24.0-py3-none-any.whl |
|---|---|
| Size | 24.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
219de54d56e93d440f4128d4fb66457a327bef027c694854999ceaefcc35344f
|
|
BLAKE2b-256 checksum How to use checksums |
28b162340e942f71ffb832e4229b2b101c7998f5ee98f005a28e9bd6a410732f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|