Skip to main content

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.

license pypi pyversions tests

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

covers-0.0.5.dev202512200218.tar.gz (333.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

covers-0.0.5.dev202512200218-cp312-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.5.dev202512200218-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

covers-0.0.5.dev202512200218-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

covers-0.0.5.dev202512200218-cp312-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.5.dev202512200218-cp312-abi3-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

Details for the file covers-0.0.5.dev202512200218.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200218.tar.gz
Algorithm Hash digest
SHA256 9ced950e01f8df77c73448c03d0ffd7c5aa3f5d9e7fca8b3e970661d63597184
MD5 910c9923430887581b919a663cdd3248
BLAKE2b-256 6e2b3035b1e24e4e209b96fa5a40582582e462720babce5af9252a8f030966a7

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202512200218-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200218-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8edace47b2452bf0194e98e7b8807e5d259b75e1d3554fd1da859962af852a53
MD5 a9d97a7c1b3a24627a40dd56fd1a51f9
BLAKE2b-256 22e10491c9858b3ad22df3bd470be5e601b6b2e7844834b319f6658f64488a47

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202512200218-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200218-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dcdd1a41ac8ee750f28e68def57b8beea91ce6170ea42d8c6ae147e5b8dd1176
MD5 8a9e3b1193799b312a55729d39e90e76
BLAKE2b-256 9ca92a5fe20236749b619d63566a173918a975f8a53b2f259fd0dd4a5808fd8c

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202512200218-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200218-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 04665c4dc8ba4018adb8cc93160f31fddaa7596c587140ff6aba1462526c4fb0
MD5 82e95048b820d37d25094329e93b2c20
BLAKE2b-256 b11a6e38317169832095d617bc747f127260b290de2ae00daa0a49b7708032e2

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202512200218-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200218-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5400dbad394b34eb46948911dc53f9d5de6b880c7c57d001df0dfda85c90fc7
MD5 c3dd81184b6a08e328bedae62c842eda
BLAKE2b-256 ae5f54ddd617c0b2fcd9511152f94051e2ed7b36de32a4a1119dcd1956451c14

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202512200218-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200218-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4c9ebcefb19150bbd459850d2a73981174b2b0fe93276c81ba5ec253a6ffc6cb
MD5 44db02aa13af30cf301c3281c92961e1
BLAKE2b-256 9c46dd4601ba03c44cb99cea1352cf3e4adc499aa018ec637329ee2b5a57d655

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page