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.3.dev202511082144.tar.gz (314.9 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.3.dev202511082144-cp312-abi3-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.3.dev202511082144-cp312-abi3-manylinux_2_34_x86_64.whl (1.4 MB view details)

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

covers-0.0.3.dev202511082144-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

covers-0.0.3.dev202511082144-cp312-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

File details

Details for the file covers-0.0.3.dev202511082144.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511082144.tar.gz
Algorithm Hash digest
SHA256 eef85b4e45a2755a2ed15c7f530268fa6fb7692a26c5fd2b31ca4f5c348777f5
MD5 6efdfd7d2f0d83336465f832e875e4f3
BLAKE2b-256 3e7fc0a1cd8d4c3099863d248075c685d7ec1f18cfed45439d870cf8a8e1ee8f

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511082144-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511082144-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e29b78db11a9d6a4f2b9a06f52718ca0a2243fadc4804e3f2046bfef3b19e347
MD5 e4f948e6aaf13ca0c21dab6133da4620
BLAKE2b-256 b10b9123e6d8a52d693af227585fd99fd99be7772aac6c02283b88adbc6c245f

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511082144-cp312-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511082144-cp312-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bc0634f5dff207afefb9ddc8848a6cd0c839f8e1534f96a9949aa78be1d48e4d
MD5 d1d22b81293156b4e14a3825cedb8064
BLAKE2b-256 a5f08a77efb79d20d0af49871902bd97692b5d379334136b51c6973f29d7c308

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511082144-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511082144-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 718c3928d68f5f1d038f286ac07048895e5caf502d8ab17ec94c7b6321e8a368
MD5 5527a412255171dbb43ad3f6d3f81c99
BLAKE2b-256 5313ba9d13827924e55f27daf2ff6fe99d5cdae7b1d9823bcbffa039f0ac12c9

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511082144-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511082144-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c935f2f3612b9f51f20a1ac4446c80380d396b0bc23cb039aa7e31e5e95fd21
MD5 24f51c0169e2ceb6b402b75e27462140
BLAKE2b-256 4b7e4bc4d366aae59a3ac1f1bd8708ff6983670fefb2d86203305fa087893ab2

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