How to properly use coverage.py in Python?

前端 未结 3 1301
暗喜
暗喜 2020-12-23 17:03

I\'ve just started using Coverage.py module and so decided to make a simple test to check how it works.

Sample.py

def sum(num1, num2         


        
3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-23 18:00

    Coverage looks for a .coverage file to read and generate that report for you. Py.test on its own does not create one. You need py.test plugin for coverage:

    pip install pytest-cov
    

    If you already have it, then you can run both at once like this:

    py.test test.py --cov=sample.py
    

    Which means run test module test.py and record/display coverage report on sample.py.

    If you need to have multiple test runs and accumulate their recorded coverage and then display a final report, you can run it like this:

    py.test test.py --cov=sample.py --cov-report=
    py.test test.py --cov=sample2.py --cov-report=
    py.test test.py --cov=sample3.py --cov-report=
    

    Which means run test module test.py and record (only) coverage on sample.py - don't display a report.

    Now you can run coverage command separately for a complete report:

    coverage report -m
    

    The command above simply displays a formatted coverage report based on the accumulated .coverage data file from previous test runs. -m means show lines missed i.e. lines not covered by tests:

    Name        Stmts   Miss  Cover   Missing
    -----------------------------------------
    sample.py       6      0   100%  
    

    Coverage supports more switches like --include and --omit to include/exclude files using path patterns. For more info check out their docs: https://coverage.readthedocs.io/en/coverage-4.5.1/cmd.html#reporting

提交回复
热议问题