首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单元测试覆盖实际上是如何完成的?

单元测试覆盖实际上是如何完成的?
EN

Stack Overflow用户
提问于 2015-01-13 10:03:47
回答 1查看 2.4K关注 0票数 4

我知道覆盖测试的理论,但是在现实中,CC工具是如何进行覆盖测量的?我的意思是,它是否检查每个方法是否都有一个单元测试来测试它?在单元测试中,行覆盖率是否涉及到某种程度?我所能找到的只是覆盖率标准等等,但我只是不明白这些工具(例如Sonar)是如何实际测量单元测试覆盖率的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-13 10:20:47

覆盖率是在自动测试运行时执行多少行/块/弧代码的度量。

代码覆盖的基本思想很简单。在产品开发过程中,会创建大量的测试用例,并运行这些测试用例来查找系统中的bug。代码覆盖率分析监视产品代码的哪些部分通过测试用例的集合来执行。如果产品代码的某些部分在测试期间从未运行,那么产品还没有经过彻底的测试。

因此,如果您有90%的代码覆盖率超过了这意味着有10%的代码没有涵盖在测试中。我知道您可能认为90%的代码已经涵盖,但是您必须从不同的角度来看。是什么阻止你获得100%的代码覆盖率?请记住,拥有"100%的代码覆盖率“并不意味着所有的代码都会被测试--虽然这意味着每一行代码都会被测试,但这并不意味着它们在每个可能的场景下都会被测试。

使用Sonar,您可以监视应用程序的总体覆盖率,并根据需要发送百分比度量。要通过项目上的集成测试获得代码覆盖率,只需遵循以下5个步骤:

  1. 将一个JaCoCo代理附加并配置到JVM上,您将使用该代理运行集成测试。
  2. 在这个JVM中运行您的自动化或手动集成测试。在执行结束时,JaCoCo将在步骤1中设置的目标中转储代码覆盖率报告。
  3. 配置Sonar以重用此JaCoCo报告。在项目属性文件(或直接在命令行中)中,将sonar.jacoco.itReportPath属性添加到JaCoCo IT覆盖率报告的路径作为值。您可以下载一个示例并查看projects/code-coverage/it目录:对于每个启动程序,您将找到一个示例。
  4. 运行一项分析,向声纳提供JaCoCo报告提供的信息。
  5. 浏览Sonar网络界面上的结果。在声纳仪表板中,您可以看到覆盖率最低的类,并相应地规划您的策略。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27919475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档