python代码覆盖率_python代码覆盖率统计-coverage

coverage.py是一个用来统计python程序代码覆盖率的工具。它使用起来非常简单,并且支持最终生成界面友好的html报告。在最新版本中,还提供了分支覆盖的功能。

官方网站:

win32版本下载地址:

或者通过pip来安装:

pip install coverage

如果安装后调用出现问题,请留意安装过程的报错信息,做对应的调整

1. run

执行代码覆盖率统计,只需要通过coverage的run参数执行被统计代码即可。

$ coverage run my_program.py arg1 arg2

跑完后,会自动生成一个覆盖率统计结果文件(data file):.coverage。如果要修改这个默认的文件名也可以,只要设置COVERAGE_FILE环境变量。

2. report

有了覆盖率统计结果文件,只需要再运行report参数,就可以在命令里看到统计的结果

$ coverage report

Name Stmts Exec Cover---------------------------------------------my_program20 16 80%my_module15 13 86%my_other_module56 50 89%

---------------------------------------------TOTAL91 79 87%

3. html

最帅最酷的功能了,直接生成html的测试报告。

$ coverage html -d covhtml

4. combine

用过代码覆盖率工具的都知道,多份结果的合并至关重要。combine这个参数我琢磨了很久,开始总是合并不成功。后来终于明白了。执行合并操作很简单,只要把需要合并的覆盖率结果数据文件放在同一个目录里,然后执行

coverage combine

即可。但是,其实对目录里的结果文件是有要求的,要求就是文件名的格式,需要合并的文件必须有同样的前缀,然后后面跟一个名称(通常是机器名),然后再跟一个数字(通常是进程ID),比如:

.coverage.CoderZh.1234.coverage.Cnblogs.5678

为了方便执行结果的合并,我们在前面执行统计时,在run参数后面跟一个-p参数,会自动生成符合合并条件的结果文件。

$ coverage run -p my_program.py arg1 arg2

合并后,会再生成一个.coverage文件,然后再执行html查看合并后的报告吧。

其他几个erase annotate debug 参数就不介绍了。

Coverage API

除了使用命令行,还可以在python代码中直接调用coverage模块执行代码覆盖率的统计。使用方法也非常简单:

importcoverage

cov=coverage.coverage()

cov.start()#.. run your code ..

cov.stop()

cov.save()

coverage的构造函数可以设置结果文件的名称等。有个函数容易弄错,就是use_cache,如果设置的use_cache(0),表示不在硬盘上读写结果文件。如果需要结果数据用来合并,一定要设置use_cache(1)。

coverage提供一些很好用的函数,如:exclude(排除统计的代码),html_report(生成html报告),report(控制台输出结果)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中常用的代码覆盖率测量工具是Coverage.py。该工具通常在测试执行期间测量代码覆盖率。它使用Python标准库中提供的代码分析工具和跟踪钩子来确定哪些行是可执行的,哪些行已执行。Coverage.py可以在许多版本的Python上运行,包括CPython 2.7和CPython 3.5等版本。 通过使用Coverage.py,开发人员可以了解他们的测试用例是否覆盖了代码的各个部分,从而更好地衡量测试的质量和完整性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python代码覆盖率测量-Python开发](https://download.csdn.net/download/weixin_42135462/19057629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [coveragepy:Python代码覆盖率测量](https://download.csdn.net/download/weixin_42115003/18199251)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python 线程的使用 python线程基础知识,提供python2示例代码,供参考学习](https://download.csdn.net/download/li171049/88228363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值