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.1
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.1.tar.gz | 18.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tracecov-0.24.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.9 kB
Release files / tracecov-0.24.1.tar.gz
| Download URL | tracecov-0.24.1.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12025ba64ab23ad79365bdae7441ab9081121ddebc0af2afd60fb21c29479e0c
|
|
BLAKE2b-256 checksum How to use checksums |
a75a0b2eb2ff544b010b4bd4751a8f08f3c12a1985d7980f60d2edbfbe0b4807
|
| 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.1-py3-none-any.whl
| Download URL | tracecov-0.24.1-py3-none-any.whl |
|---|---|
| Size | 24.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
752fc6a75913c9798da38482ce15288b247438cb56ca2224c35bd202bbf6b5ab
|
|
BLAKE2b-256 checksum How to use checksums |
092afafc52bd625335d239c6c6d130dc9a5103ffcca54ae54c9224a48dc32f09
|
| 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}
|