maven+cobertura+ant跨模块单测覆盖率统计

2024-06-14 22:48

本文主要是介绍maven+cobertura+ant跨模块单测覆盖率统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

cobertura是统计单测覆盖率的工具,但是一般不会使用到ant一起统计。

--父pom.xml

----web

      --pom.xml

---service

      --pom.xml

maven+cobertura+ant使用场景:当应用是这样设计的,web应用、service应用,controller接口在web应用中,service仅仅作为web的jar包依赖,单测却写在web下,springboot启动类在web下。maven+cobertura使用统计覆盖率却始终未0,可明明有单测啊。

为了查明原因,特意百度了下cobertura的使用,得出结论:web和service生产的classes文件在2个不同的target下,web下的类引用不到service的,web对service maven依赖也不行。

这就要用到ant了,ant的作用是比较灵活的,具体是什么作用问度娘(为了节约时间,这里就不那么详细说了),

如何使用ant解决?

参考http://blog.csdn.net/shymi1991/article/details/52849947

注意:

1.  build.xml中<property name="COBERTURA_HOME" value="/Users/tsu/java/cobertura-1.9.4.1"/> 

COBERTURA_HOME 是指单独下载的cobertura,而非maven依赖下的jar包。(所以这里需要单独下载cobertura

2. 使用intelij时会发生执行命令不成功,那么就换到命令终端里执行。

3. 一般的ide中都集成了ant插件,如果没集成则需要自己下载一个,http://org.apache.com/。(下载到本地,过程和下载maven类似)

4. 配置完需要重新编译。

5. 若执行ant instrument时报错,提示主类找不到(我用的是springboot,因此这里的主类是指springboot启动类),这时需要解决某些包的冲突问题,

比如我遇到的是cobertura的日志配置和我当前应用的日志配置是冲突的,那么我在web的pom.xml中配置cobertura时添加<exclude>标签将cobertura的日志配置排除掉。

6.注意线上执行单测统计覆盖率时,需要检查线上环境是否支持ant和存在cobertura的配置。

这篇关于maven+cobertura+ant跨模块单测覆盖率统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(