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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181926.tar.gz
Algorithm Hash digest
SHA256 05f99e0cd56af3863f7e57a6cc02a40198c0b191a1de255261633f4d80c466f6
MD5 ebe9f7fd1d0c71756e8ceb2739074ebd
BLAKE2b-256 19b47d713d557cb54e0e2f1db8f5193af063a43a24d1e71460f4a34d55f9fdcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181926-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e2f9fd0c576ec3617c8ed2a117163f8c186972e749fbbe83355f35f1271ea0a8
MD5 7e7decd18d182af69145c840a6b89425
BLAKE2b-256 7d180af1c24798632ab628944784a1c7649d5752342460c2e5b0746620a128a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181926-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 036a8cff7f8a8a06495658b9bb0f990a4bce8e0b31bfa734e7b44dff8b197927
MD5 aefc0839abd8f5317e12f60e69839195
BLAKE2b-256 f125f308a060f1919d1489d0807dd0cd37bc78a2b483879950af44fc7851fb5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181926-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 61f7c7c2d98e0dc8c582c51e27add266d8ed329a2d377a49f61767586e468049
MD5 329b006bf69e4cab0cede0b551fa864e
BLAKE2b-256 dbb29297f6485a410a0882832c2cc3ffbcca45b7ba1059982299baab39b99548

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181926-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1002fcd961a92ae892a8d5600a87a167efa9c5c2e6935fd66796d3a13d5f325a
MD5 d389aa9992c46186e186936ed03d762d
BLAKE2b-256 73be48cafed34479e27b83a017a18585d610d888859ce12f46c420e79d4300b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601181926-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d94662e083af4b5950723fe61d4f41dc7fc15b61b36e8be82135563b2558bd2f
MD5 eefef5a6699a917f81f72e3c7c332fb2
BLAKE2b-256 82b5dc07a9ddad6a67a8d3ebb50148b13711a856dd58da974353bb048da60ba7

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