首页 > 开发工具 > PyCharm 编辑器教程 > 在 PyCharm 里获得代码覆盖率

在 PyCharm 里获得代码覆盖率

当为源代码添加测试代码后,如何知道测试得是否充分呢?通常会通过代码覆盖(Code coverage)。代码覆盖是软件测试中的一种度量,描述源代码被测试的比例和程度,所得比例称为代码覆盖率。在PyCharm内,可以在较低运行开销下,对代码执行覆盖率进行测量。本节的主要内容是讲解如何如何带代码覆盖执行测试,如何查看结果等等。(这是PyCharm 专业版提供的功能)

1. 一些基本概念

代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。它也是对测试工作进行量化的重要指标之一,根据其覆盖内容的不同,又可以细分为:语句覆盖、判定覆盖、条件覆盖、路径覆盖以及循环覆盖等等,强度也是从弱到强。在所有这些覆盖中语句覆盖(Statement coverage)是最简单的,也是最常用的, PyCharm 默认支持的就是语句覆盖

  1. 语句覆盖/代码行覆盖 :目标保证程序中每一条语句最少执行一次,其覆盖标准无法发现判定中逻辑运算的错误。
  2. 判定覆盖/分支覆盖 :是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误。
  3. 条件覆盖 :是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。
  4. 条件组合覆盖 :是使每个判定中条件结果的所有可能组合至少出现一次,因此判定本身的所有可能解说也至少出现一次,同时也是每个条件的所有可能结果至少出现一次。
  5. 路径覆盖 : 是每条可能执行到的路径至少执行一次,试图覆盖软件中的所有路径;

【补充说明】对于敏捷开发团队而言,代码覆盖率是每个Sprint要完成的硬性质量标准(Exit Criteria)之一,覆盖率高低根据项目的不同而不同:75%,80%甚至100%都是可能的。

2. 配置代码覆盖参数

主菜单:File/PyCharm -> Settings/Preferences dialog -> Build, Execution, Deployment -> Coverage.

图片描述
Tips: 在执行前,确保 Use bundled coverage.py 选项是被选中的, 并安装coverage 包。

3. 使用代码覆盖运行

我们依然以本章第一小节test_rectangle.py为例运行测试,PyCharm 提供了多种带代码覆盖运行方式。

  • 在编辑器内, 右键从上下文菜单选择 Run <name> with Coverage

  • 在 Project 工具窗口,右键从上下文菜单选择 Run <name> with Coverage

  • 选择期望的 运行/调试 配置, 在主菜单选择 Run -> Run <run/debug configuration name> with coverage.

  • 在主工具栏, 点击 Run <run/debug configuration name> with Coverage 按钮

图片描述

4. 查看代码覆盖结果

在程序结束运行后, 就会在 Project 与 Coverage 工具窗口显示语句覆盖结果
图片描述
在编辑器中打开其中的文件,可以看到侧边框用绿色显示了覆盖的行,红色显示了未覆盖的行。
图片描述
除此以外,可以查看历史的覆盖率结果。 主菜单 Run -> Show Coverage Data
图片描述

5. 生成覆盖率报告

主菜单选择 Run -> Generate Coverage Report 或者 在 Coverage 工具窗口点击 Generate Coverage Report 按钮。在"Generate Coverage Report"对话框中,指定将存储生成报表的目录就可以了。
图片描述

6. 小结

本节内容是对执行测试内容的补充,通过代码覆盖的结果我们能快速查看到哪些代码还没被测试到,方便我们补充新的测试用例,帮助我们找到测试死角。
图片描述

本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈