coverage.py - python 单元测试覆盖率统计工具
前提:
1.假定已经安装好coverage.py(ubuntu 10.10+python.2.7+coverage3.5.1)
2.项目里有模块do.py以及测试它的单元测试模块doTEST.py
命令行:
$ cd /home/user1/workspace/hp1
$ coverage run doTEST.py
$ coverage report
$ coverage html
命令解释:
第一个命令进入项目目录,第二个命令 执行coverage命令,调用单元测试,进进行统计(当前目录生成.coveage文件,该文件默认隐藏)第三个命令是读取.coveage文件并打印到屏幕,第四个命令时,生成详细的HTML报表(htmlcov文件夹)
补充:
1)coverage的另一种方式是可以作为模块被程序import,通过代码保存统计,未尝试。
2)如果原来测试的代码接收参数,如
$ doTEST.py 100 200
那么可以这样调用我们的单元测试
$ coverage run doTEST.py 100 200
疑问:
我似乎觉得重新执行上述命令时,没有重新生成报表,如果是这样的话应该在执行之前执行rm命令将生成的.coveage和htmlcov文件夹先删除掉,待确认
查看HTML报表:
进入htmlcov目录,使用firefox打开index.html文件,该文件里包含一个列表,列出了doTEST.py使用过的所有模块的代码覆盖信息,其中也包括我们关心的do.py的情况,如果测试用例完善,理论上do.py每一行代码都应该被执行过(被覆盖),反之如果do.py里某些代码没有被执行,则说明我们的测试用例还不完善,需要增加测试用例,以保证do.py每一行都被执行过。
在目录页我们可以看到概要信息,点击文件名可以查看信息,例如:
Coverage for verify : 98%
65 statements 63 run 2 missing 0 excluded 0 partial
verify是模块名称(verify.py)该模块有65条语句,63条被执行,2条未被执行,覆盖率98%,点击run和missing还会对代码进行标红和标绿,红色表示未覆盖,绿色表示已覆盖
$ coverage run --branch doTEST.py
posted on 2012-01-13 18:45 codestyle 阅读(1307) 评论(1) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述