test coverate-06-测试覆盖率 OpenClover 是一个商业化的代码覆盖率工具 OpenClover 对比 jacoco

拓展阅读

test 系统学习-04-test converate 测试覆盖率 jacoco 原理介绍

test 系统学习-05-test jacoco 测试覆盖率与 idea 插件

test 系统学习-06-test jacoco

SonarQube

Docker learn-29-docker 安装 sonarQube with mysql

Ubuntu Sonar

opencolver 能力

代码覆盖率测量

OpenClover支持以下语言:

  • Java
  • Groovy
  • AspectJ

它可以追踪两种代码覆盖:

  1. 全局覆盖
  2. 每个测试的覆盖
  3. 分布式每个测试的覆盖

涵盖三种度量标准:

  • 方法覆盖
  • 语句覆盖
  • 分支覆盖

代码度量衡

OpenClover提供:

  • 超过20个内置的代码度量衡
  • 可以定义自定义度量衡的能力

它使用代码度量衡和覆盖数据来提供:

  • 用于代码包的“树状图”(热力图)
  • 用于类的“顶级风险”标签云
  • 用于类的“快速收益”标签云

工具集成

构建系统和框架:

  • Ant
  • Maven
  • Gradle
  • Grails
  • Griffon

持续集成服务器:

  • Jenkins
  • Hudson
  • Bamboo

开发者集成开发环境(IDEs):

  • Eclipse(也包括IBM RAD)
  • IntelliJ IDEA

其他工具:

  • Sonar
  • JIRA

测试框架集成

OpenClover专门支持以下测试框架:

  • JUnit 3 和 4
  • TestNG
  • Spock

它可以通过定义基于以下内容的自定义测试模式来支持其他测试框架:

  • 源文件
  • 类(名称、修饰符和注解)
  • 方法(名称、参数、返回类型、抛出异常、修饰符、注解、Javadoc标签)

它还处理以下测试迭代(参数化测试):

  • JUnit 4
  • Spock

报告

OpenClover可以生成以下格式的报告:

  • HTML(当前和历史)
  • XML
  • PDF
  • JSON
  • TEXT

HTML ‘current report’ 特性:

此报告显示与最近收集的覆盖数据相关的信息:

  • 全局代码覆盖率
  • 每个测试的代码覆盖率
  • 被测试覆盖的类
  • 覆盖给定类/方法/源代码行的测试
  • 独特的每个测试覆盖

覆盖数据与源代码一起显示,因此您可以轻松浏览:

  • 应用程序类
  • 测试类
  • 测试结果,包括:
    • 测试持续时间
    • 参数化测试
    • 可导航的堆栈跟踪

报告显示所有级别的覆盖数据和代码度量:

  • 项目、包(还包括子包聚合)、文件、类和方法
  • 您可以自定义显示的列
  • 您可以引入自定义度量

报告仪表板还显示图表:

  • 类覆盖分布
  • 类复杂性
  • 覆盖树状图

测试优化

OpenClover能够确定哪些测试需要重新运行以适应修改后的应用程序类。这可以极大地减少运行测试所需的时间。此功能适用于:

  • Ant
  • Maven
  • Grails
  • Eclipse
  • IDEA

它还可以改变测试执行的顺序:

  • 先运行失败的测试 - 以便尽快失败构建,获得更快的反馈
  • 随机运行 - 揭示由特定测试顺序隐藏的错误

数据管理和过滤

OpenClover在管理覆盖数据方面非常灵活。它可以:

  • 合并来自不同项目的覆盖数据
  • 为给定项目收集历史数据
  • 提供交叉报告链接

它还在定义代码覆盖测量范围的灵活性上超过其他覆盖工具。过滤器可以基于:

  • 路径/文件模式
  • 方法(允许按整个方法签名匹配)
  • 代码块类型(例如,静态初始化器)
  • 单个语句(通过正则表达式)
  • 方法的圈复杂代码
  • 任意部分(通过放置内联代码注释)

OpenClover 和 jacoco 对比有哪些优缺点?

OpenClover 和 JaCoCo 都是用于 Java 代码覆盖率的工具,它们有一些相似之处,同时也有一些不同之处。

以下是 OpenClover 和 JaCoCo 的一些优缺点对比:

OpenClover 优缺点:

优点:

  1. 分支覆盖度:

    • OpenClover 提供了详细的分支覆盖度报告,使得开发人员能够更全面地了解测试覆盖的质量。
  2. 历史追踪:

    • OpenClover 支持历史追踪,可以比较不同构建之间的覆盖率变化,帮助开发人员了解项目的演进。
  3. IDE 集成:

    • OpenClover 提供了与一些主流 IDE(如 Eclipse 和 IntelliJ IDEA)的集成支持,使得开发人员能够方便地在开发过程中查看代码覆盖情况。
  4. 线程安全:

    • OpenClover 是线程安全的,可以在并行构建和测试中使用,而不会出现竞态条件或其他线程相关的问题。
  5. 商业支持:

    • OpenClover 提供商业版本,对于一些大型项目,可能希望获得专业的技术支持。

缺点:

  1. 授权:

    • OpenClover 是一个商业软件,因此在使用前需要获取相应的许可证。虽然也有免费版本,但功能可能受到一些限制。
  2. 社区活跃度:

    • 相对于一些开源工具,OpenClover 的社区活跃度可能相对较低。

JaCoCo 优缺点:

优点:

  1. 开源:

    • JaCoCo 是一个开源项目,可以免费使用,并且具有广泛的社区支持。
  2. 易集成:

    • JaCoCo 易于集成到常见的构建工具(如 Maven、Gradle、Ant)和 CI 工具中,使得在项目中的使用变得更为简便。
  3. 广泛使用:

    • 由于 JaCoCo 是一个流行的开源项目,因此在开源社区和行业中被广泛使用,有更多的使用案例和支持。
  4. HTML 报告:

    • JaCoCo 生成易于理解的 HTML 报告,其中包括代码覆盖的各个方面,如行覆盖、分支覆盖等。

缺点:

  1. 分支覆盖度:

    • 相对于 OpenClover,JaCoCo 的分支覆盖度报告可能较为简单,对于一些需要详细分支覆盖信息的项目可能不够满足需求。
  2. 历史追踪:

    • JaCoCo 在一些版本中对于历史追踪的支持相对较弱,可能需要其他工具来实现类似的功能。
  3. 某些情况下的性能:

    • 在某些特殊情况下,JaCoCo 的性能可能受到一些影响,尤其是在高度动态的代码中。

test coverate-06-测试覆盖率 OpenClover 是一个商业化的代码覆盖率工具 OpenClover 对比 jacoco_第1张图片

你可能感兴趣的:(test,测试覆盖率,代码覆盖率,junit,unit,testing,单元测试,学习)