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.
Metadata
Release files for tracecov 0.25.3
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.25.3.tar.gz | 22.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tracecov-0.25.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.7 kB
Release files / tracecov-0.25.3.tar.gz
| Download URL | tracecov-0.25.3.tar.gz |
|---|---|
| Size | 22.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9149be2d09640e42ca59f4a9c882f47aea6894f64300b3bcb18535321968105
|
|
BLAKE2b-256 checksum How to use checksums |
ee6ffa597141e371097ea457df17b0b59e7a64d171e4559cbb975a5c295be3f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.25.3-py3-none-any.whl
| Download URL | tracecov-0.25.3-py3-none-any.whl |
|---|---|
| Size | 29.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
197e43ad9439a945adab4d727a68b510019dab38f60e764ae42894f879b81931
|
|
BLAKE2b-256 checksum How to use checksums |
5fbc95d439012063aead3fd59651c026db619015ab375e625d82fc0b0875185c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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}
|