Python代码覆盖率工具——Coverage命令行(转载)
一、Coverage命令行介绍安装coverage工具easy_install coverageorpip install coverage下面举例说明如何使用coverage工具生成指定测试用例模块的覆盖率报告cd testscoverage run test_ascheduler.py新增加一个.coverage文件,这个文件里面记录了test_asc...
一、Coverage命令行介绍
- 安装coverage工具
easy_install coverage
or
pip install coverage
- 下面举例说明如何使用coverage工具
- 生成指定测试用例模块的覆盖率报告
cd tests
coverage run test_ascheduler.py
新增加一个.coverage文件,这个文件里面记录了test_ascheduler.py单元测试脚本对应模块的覆盖率数据。
默认覆盖率数据记录在.coverage文件中,也可以在运行前指定保存文件的名称,通过设定环境变量 COVERAGE_FILE 来更改存储覆盖率报告的文件名称。
- 可以使用下面的命令来查看测试用例覆盖率情况:
coverage report
- 生成多个测试用例模块报告
在tests目录下面存在多个test_开头的测试用例模块,如果我们分别执行coverage run 命令,.coverage会被后面执行的结果覆盖,可以执行下面的命令保存多个测试用例覆盖率报告:
coverage run -p test_ascheduler.py
coverage run -p test_calendar.py
coverage run -p test_cmd.py
coverage run -p test_cmd2.py
coverage run -p test_rsync.py
- 合并多个测试用例覆盖率报告
coverage combine
- 合并成一个.coverage文件
- 查看测试用例未覆盖的代码行
coverage report -m
- 测试覆盖率报告中不显示测试用例模块
我们看到上面的测试用例报告中,有很多测试用例模块自身的覆盖率,其实我们只想看功能模块的测试覆盖率情况,可以执行下面的命令:
coverage report --omit="test_*.py"
或者在执行的时候指定过滤,忽略所有符合test_*.py模式的python文件
touch .coveragerc
vim .coveragerc
[run]
omit =
test_*.py
*/utils/__init__.py
*/utils/errors.py
一般测试用例覆盖率不需要对测试用例模块本身做出统计,过滤掉test_*.py的模块,另外__init__.py和errors.py文件一般也不需要测试用例覆盖率。
coverage run test_ascheduler.py
coverage report
- 如果想了解更详细的coverage使用,可以访问官方文档:http://coverage.readthedocs.io/en/latest/index.html
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)