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.dev202511121451.tar.gz (332.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.dev202511121451-cp312-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.5.dev202511121451-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.dev202511121451-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.dev202511121451-cp312-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.5.dev202511121451-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.dev202511121451.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121451.tar.gz
Algorithm Hash digest
SHA256 04e3a810fe8ce255dffd6e55a801ef87cd134ab361ecb16f4bf2560134284afa
MD5 e373288fdb6fa94b5c98686312e27087
BLAKE2b-256 997570fe396516d749b5f35db5875e9db5b3cb01c1214e9a766165f80cfd1808

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121451-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c69f3f989a60d9431d850fa9133ad81088e32862e9e79bb4bba6207bf55d731a
MD5 9a213ef5aaed6297c152b0699679d959
BLAKE2b-256 a2d31c675686f3231f31bb8a80d36a37621751e9ca4a0e2babac4a553aeba54d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121451-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06a548ee23cca15bb518f8b023a436585de7af4affc058be6fe20ebdf348cea6
MD5 48fb4288a60d360f611956b332217444
BLAKE2b-256 0721c761825359a26c9a6dd6cb4f693563945b07d44613c35d9a8098623c4b42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121451-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 504bcb0f1ca85c537252f8a6bb2ba71187b1feaafab6b20a2b66cd0606516296
MD5 d0cb2e374c731e86d5278de9db5fc223
BLAKE2b-256 38536699e3dc14a40504dcf0e5d07156afb4422ebe2ae4679a608684a502ada4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121451-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90478a160d0fce74ace67245ad62b0357477a914592a3dd26061249e81c55eb5
MD5 eba284dfa0ce6e3ee296d1de46d1bd2b
BLAKE2b-256 994c64ba8f11f15b51002d03721a6b8fb3b8f905ddeff2fdc752160f3b5a12e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511121451-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 92ce77b4c74c912f9abc0b704156f0558db2fcabff14884e730aabaf7087ebc7
MD5 505767c9d3f0d4d1a8558f8de5df04d3
BLAKE2b-256 c707c7d24dc2f3f9769149494df17e8b7e0344b98389e034af7d91d9de80b5d3

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