gpt4 book ai didi

unit-testing - 单元测试覆盖率实际上是如何完成的?

转载 作者:行者123 更新时间:2023-12-01 11:35:02 26 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。




Improve this question




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

最佳答案

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

代码覆盖率背后的基本思想很简单。在产品开发过程中,会创建并运行大量测试用例来发现系统中的错误。代码覆盖率分析监控产品代码的哪些部分由测试用例集合执行。如果在测试期间从未运行过某些产品代码段,则该产品还没有经过彻底的测试。

所以,如果你有 90% 的代码覆盖率,那么这意味着有 10% 的代码没有被测试覆盖。我知道你可能会认为 90% 的代码都被覆盖了,但你必须从不同的角度来看。是什么阻止你获得 100% 的代码覆盖率???请记住,拥有“100% 代码覆盖率”并不意味着所有内容都经过完全测试 - 虽然这意味着每一行代码都经过测试,但这并不意味着它们在所有可能的情况下都经过测试。

使用 Sonar,您可以监控应用程序的整体覆盖范围并根据需要发送百分比指标。要通过项目的集成测试获得代码覆盖率,您只需按照以下 5 个步骤操作:

  • 将 JaCoCo 代理附加并配置到 JVM,您将使用该代理运行集成测试。
  • 在此 JVM 中运行自动或手动集成测试。在执行结束时,JaCoCo 将在您在步骤 1 中设置的目标中转储代码覆盖率报告。
  • 配置 Sonar 以重用此 JaCoCo 报告。在您的项目属性文件中(或直接在命令行中),添加 sonar.jacoco.itReportPath 属性以及 JaCoCo IT 覆盖率报告的路径作为值。您可以下载一个示例并查看 projects/code-coverage/it 目录:对于每个启动器,您都会找到一个示例。
  • 运行分析以将 JaCoCo 报告提供的信息提供给 Sonar。
  • 在 Sonar Web 界面上浏览结果。在 Sonar 仪表板中,您可以看到覆盖率最低的类别并相应地规划您的策略。
  • 关于unit-testing - 单元测试覆盖率实际上是如何完成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27919475/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com