Python 代码覆盖率统计工具 coverage.py

本文转自http://www.cnblogs.com/coderzh/archive/2009/12/01/1614874.html

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

官方网站:

http://nedbatchelder.com/code/coverage/  

win32版本下载地址:

http://pypi.python.org/pypi/coverage

或者通过easy-install来安装:

easy_install coverage

 

装好后,在c:/Python25/Scripts/(假设装在c盘)目录会有一个coverage.exe。通过这个exe基本上可以完成我们所有需要 的功能。运行一下,如果发现少了那个模块,请先安装easy_install。

Coverage Command Line

命 令行使用说明: 详见:http://nedbatchelder.com/code/coverage/cmd.html

最 关键核心的几个参数使用如下:

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_program                   
20       16      80 %
my_module                    
15       13      86 %
my_other_module              
56       50      89 %
---------------------------------------------
TOTAL                        
91       79      87 %

3. html

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

$ coverage html  - d covhtml

生 成的报告非常酷,直接关联代码,高亮显示覆盖和未覆盖的代码,支持排序。可以在这个地址预览一下:

http://nedbatchelder.com/code/coverage/sample_html/  

效 果如下:

 

 

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模块执行代码覆盖率的统计。使用方法也非常简 单:

import  coverage

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 (控 制台输出结果)

要在 VS Code 中使用 Code Coverage 插件配合 locv 工具实现代码覆盖率统计,可以按照以下步骤进行: 1. 安装 Code Coverage 插件。可以按下快捷键 Ctrl+Shift+X 打开 Extensions 面板,在搜索框中输入 "Code Coverage" 查找插件,然后点击 "Install" 按钮进行安装。 2. 在项目根目录下安装 locv 工具。可以使用以下命令进行安装: ``` npm install --save-dev locv ``` 3. 在项目的构建文件中添加 locv 的配置。以 Mocha 为例,在项目的 package.json 文件中添加以下配置项: ```json "scripts": { "test": "mocha test/**/*.test.js --require @babel/register --exit && locv" }, "locv": { "src": "./src/**/*.js", "coverageDir": "./coverage", "html": true } ``` 其中,scripts 中添加了一个 test 命令,用于运行 Mocha 测试和 locv 工具locv 配置项指定了要统计的源代码文件和输出的覆盖率报告目录,以及是否生成 HTML 格式的报告。 4. 运行测试命令。在 VS Code 的终端中运行以下命令: ``` npm test ``` 5. 在 VS Code 中打开生成的覆盖率报告。可以在项目的 coverage 文件夹中找到生成的覆盖率报告,右键点击 index.html 文件,选择 "Open with Live Server" 选项打开覆盖率报告。 6. 在覆盖率报告中查看测试覆盖率情况。可以查看不同文件、不同函数、不同代码行的测试覆盖率情况,并根据情况进行代码优化。 希望这些步骤能够帮助你使用 Code Coverage 插件配合 locv 工具实现代码覆盖率统计
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值