Simple Coverage measurements for Python
Project description
simple-coverage
Very basic coverage tool for educational purposes.
Installation
pip install simple-coverage
Usage
Just import the package and add the @print_coverage decorator above functions you want to inspect.
from simple_coverage.coverage import coverage
@print_coverage
def demo(x, y) -> int:
"""
Demo function
"""
product = x * y
if product < 10:
return product * 2
else:
return product
if __name__ == "__main__":
demo(3,5)
When simply runnning the Python-file, this will create the following output:
Function: demo(3, 5)
CALLED line 9: product = x * y
CALLED line 10: if product < 10:
MISSED line 11: return product * 2
IGNORE line 12: else:
CALLED line 13: return product
Instruction coverage: 75.0 %
Branch coverage: 50.0 %
Doctests
If you want to use it with doctests, use the meta wrapper @doctest_wrapper
and the log_coverage
decorator. This will create a simple-coverage.json
file in the current working directory since writing into the console would collide with the doctests.
from simple_coverage.coverage import log_coverage, doctest_wrapper
@doctest_wrapper(log_coverage)
def demo(x,y) -> int:
...
Look at the demo.py
file for reference. To start the doctest use pytest as usual.
pytest --doctest-modules demo.py
Afterwards you can create the report:
python3 -m simple_coverage.report
Note that all runs will be saved for the next report. To start over and delete to report run:
python3 -m simple_coverage.clean
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for simple_coverage-0.3.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96680133d720b679646e49676922c92978cf4516373dfa1d8e0823e61d7234bc |
|
MD5 | 8419b1e9791fb4ca51eaf9826f7cc7d4 |
|
BLAKE2b-256 | 717915696f55d5fc45f27bc0433a40d3b8a2ed712e96431b790b887989eac140 |