Schema-level API coverage down to individual keywords.
Project description
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.
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 tracecov-0.19.3.tar.gz.
File metadata
- Download URL: tracecov-0.19.3.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","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 |
e4dab738a3d12ea4abcb10a647163862c999d9f4077748b3d82b666574b60ec9
|
|
| MD5 |
812b3ae5599c16076af64d14b3f2666f
|
|
| BLAKE2b-256 |
af563105e11dd6ccd047b0433fd38698ac1ee6209d55c7bf55f58b94c6638a54
|
File details
Details for the file tracecov-0.19.3-py3-none-any.whl.
File metadata
- Download URL: tracecov-0.19.3-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","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 |
1ca88683b70505e1b2caf3678c769bce943fe3e0aea0b25bcc774fe4ed614658
|
|
| MD5 |
938017819d9c2154e9beb5a3d4fd2d33
|
|
| BLAKE2b-256 |
6268f7c5956cb057f8705fb507f8485749a808684f70af5851402af58b277a25
|