test coverate-04-测试覆盖率 Cobertura Cobertura/emma/jacoco 的差异对比?

2024-01-05 20:12

本文主要是介绍test coverate-04-测试覆盖率 Cobertura Cobertura/emma/jacoco 的差异对比?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拓展阅读

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

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

test 系统学习-06-test jacoco

关于 Cobertura

Cobertura是一个免费的Java代码覆盖率报告工具,基于jcoverage 1.0.5。详细信息请参阅Cobertura网页和维基。

从版本2.0.0开始,Cobertura遵循语义版本控制准则。

下载

您可以从中央仓库下载Cobertura。这包括用于独立命令行使用的分发版本。

要将其作为Maven依赖项使用,可以使用以下片段:

<dependency><groupId>net.sourceforge.cobertura</groupId><artifactId>cobertura</artifactId><version>2.1.1</version><scope>test</scope>
</dependency>

版权

net.sourceforge.cobertura.javancss包中的代码版权属于 Chr. Clemens Lee(C)2000。

请参阅包含的文件 “LICENSE.txt”。

许可证

Cobertura是免费软件,大部分使用GNU GPL许可,您可以根据自由软件基金会发布的GNU通用公共许可证的第2版或(根据您的选择)任何以后的版本重新分发或修改它。有关详细信息,请查看此分发中包含的 “LICENSE.txt” 文件。Cobertura的部分内容根据Apache软件许可证第1.1版授权。

保修

Cobertura被分发,希望它是有用的,但没有任何保修;甚至没有适销性或适用于特定目的的默示保修。有关更多详细信息,请参阅GNU通用公共许可证。

Cobertura/emma/jacoco 的差异对比?

Cobertura、Emma(JaCoCo的前身)和JaCoCo都是Java代码覆盖率工具,它们在实现和特性上存在一些差异。

以下是它们之间的一些主要区别:

1. 实现原理:

  • Cobertura: 使用插桩技术,通过在字节码中插入特殊代码来追踪执行的代码路径。
  • Emma: 通过在源代码或字节码中插入探针代码来实现覆盖率分析。
  • JaCoCo: 与Emma类似,通过在字节码中插入探针代码实现覆盖率分析。JaCoCo是Emma的继任者,采用了更现代的方法和改进。

2. 支持的覆盖率度量:

  • Cobertura: 支持语句覆盖、分支覆盖、方法覆盖等。
  • Emma: 支持行覆盖、分支覆盖、方法覆盖、基本块覆盖等。
  • JaCoCo: 支持行覆盖、分支覆盖、方法覆盖、指令覆盖等。JaCoCo提供了更丰富的覆盖率度量。

3. 报告生成:

  • Cobertura: 生成HTML和XML格式的报告。
  • Emma: 生成文本、HTML和XML格式的报告。
  • JaCoCo: 生成HTML、XML和CSV格式的报告。JaCoCo的HTML报告相对于Cobertura和Emma更现代化。

4. 集成和支持:

  • Cobertura: 相对较轻量,适用于小到中型项目。
  • Emma: Emma本身已经不再积极维护,但它的继任者JaCoCo得到了广泛的支持。
  • JaCoCo: 目前是最为活跃和广泛使用的Java代码覆盖率工具,支持Maven、Gradle、Ant等构建工具。

5. 性能影响:

  • Cobertura: 有一些性能开销,特别是对于大型项目。
  • Emma: 与Cobertura类似,可能对大型项目的性能产生一定影响。
  • JaCoCo: 通过采用更现代的技术和算法,性能影响相对较小。

6. 对源代码的依赖:

  • Cobertura: 不需要访问源代码。
  • Emma: 不一定需要访问源代码,根据配置和使用情况而定。
  • JaCoCo: 不需要访问源代码,完全可以在没有源代码的情况下执行覆盖率分析。

7. 开发者社区:

  • Cobertura: 相对较小的社区,原始项目的维护相对较少。
  • Emma: Emma本身已经不再积极维护,但它的继任者JaCoCo有一个活跃的社区。
  • JaCoCo: 有一个大而活跃的社区,得到了广泛的支持。

8. 支持的Java版本:

  • Cobertura: 支持Java 5及以上。
  • Emma: 支持Java 2及以上。
  • JaCoCo: 支持Java 5及以上。

这篇关于test coverate-04-测试覆盖率 Cobertura Cobertura/emma/jacoco 的差异对比?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574026

相关文章

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接