Near Zero-Overhead Python Code Coverage
Project description
Covers: Near Zero-Overhead Python Code Coverage
Covers is a fast Python code coverage tool, originally based on SlipCover. This version has been re-written as a Rust / PyO3 extension for improved performance and maintainability.
About Covers
Covers is a fast code coverage tool. It tracks a Python program as it runs and reports on the parts that executed and those that didn't. That can help guide your testing (showing code that isn't being tested), debugging, fuzzing or to find "dead" code.
Past code coverage tools can make programs significantly slower; it is not uncommon for them to take twice as long to execute. Covers aims to provide the same information with near-zero overhead, often almost as fast as running the original Python program.
How it works
Previous coverage tools like Coverage.py rely on
Python's tracing facilities,
which add significant overhead.
Instead, Covers uses the new
sys.monitoring API
to collect coverage information with minimal performance impact. The core data collection
is implemented in Rust for maximum efficiency.
Getting started
Covers is available from PyPI. You can install it like any other Python module with
pip3 install covers
You could then run your Python script with:
python3 -m covers myscript.py
Using it with a test harness
Covers can also execute a Python module, as in:
python3 -m covers -m pytest -x -v
which starts pytest, passing it any options (-x -v in this example)
after the module name.
No plug-in is required for pytest.
Platforms
Our GitHub workflows run the automated test suite on Linux, MacOS and Windows, but really it should work anywhere where CPython does.
Contributing
Covers is under active development; contributions are welcome! Please also feel free to create a new issue with any suggestions or issues you may encounter.
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 Distributions
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 covers-0.0.5.dev202512200229.tar.gz.
File metadata
- Download URL: covers-0.0.5.dev202512200229.tar.gz
- Upload date:
- Size: 333.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdc0dc755b06484473b7b5398bb170b433898b7589822e1b22591b688b0b93c8
|
|
| MD5 |
3c01a61b1b4809cc8f2de6c5a372727c
|
|
| BLAKE2b-256 |
3d15e31f92d79a98f7bccd21d52dc3053d3d81f6bd609bc409034d02ecafbc64
|
File details
Details for the file covers-0.0.5.dev202512200229-cp312-abi3-win_amd64.whl.
File metadata
- Download URL: covers-0.0.5.dev202512200229-cp312-abi3-win_amd64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.12+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7b9c8165c7423d72bfec6c9ccf654e3d61ab25529ef7d257da7fbeee1d9bafc
|
|
| MD5 |
41b5157134d01c8b1f30a4b44bd65fb1
|
|
| BLAKE2b-256 |
2dee7c81bbda090a93bb29baa0585ecf5d9ad14f4841bbfd601dd07b460e54b2
|
File details
Details for the file covers-0.0.5.dev202512200229-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: covers-0.0.5.dev202512200229-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.12+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0f101bafd3c839aa1fb0013f1f97351bd6dec7798b839997f3ed571252d647
|
|
| MD5 |
1fd69f90ac5f49ce9f0bf27207c230fd
|
|
| BLAKE2b-256 |
234bfd890f1e6d2cf658e6d44b46dad1775c92b178e24ee27c52a61ec3690450
|
File details
Details for the file covers-0.0.5.dev202512200229-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: covers-0.0.5.dev202512200229-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.12+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09ae9f3aa3f2c3f55335c84fef803944e14ffebe823f6d1dbdf1a288be75f07c
|
|
| MD5 |
8a9e408b0d131d53771e35713e71d3df
|
|
| BLAKE2b-256 |
c3fc073e5efe07781b3e5b019b49a27c845f5975645fe6051a3c260e5b38edac
|
File details
Details for the file covers-0.0.5.dev202512200229-cp312-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: covers-0.0.5.dev202512200229-cp312-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.12+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91efe4942fc649cc03fb0898a5840d4a076d2f45649ed080053ecf9526fcf33c
|
|
| MD5 |
cdcbed7238ff7c97dcd7d782e0830189
|
|
| BLAKE2b-256 |
665a39ac5683e35e2a68c9a95ab42970aa464643493eb67217fe37df76fb3455
|
File details
Details for the file covers-0.0.5.dev202512200229-cp312-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: covers-0.0.5.dev202512200229-cp312-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.12+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
813c644bb813c8d28bc9fce644295b0f73089c36861d1eb855b8542fb28f30c8
|
|
| MD5 |
8289cccb8e1b8ce0c0bd97b949374bf0
|
|
| BLAKE2b-256 |
8adb8591d553db7d81b5eb984980c7716c9781d2830d044ab33500638b9c5f38
|