【Maven】单元测试、统计、覆盖率相关插件使用介绍

news2025/1/20 1:38:51

maven-surefire-plugin

  • maven-surefire-pluginmaven执行单元测试的插件,不显性配置也可以直接使用。
  • 这个插件的surefire:test命令会默认绑定maven执行的test阶段。
  • 执行结束后,默认在target/surefire-reports目录下会生成txtxml两种格式的结果,不利于直观展示,需要结合其它插件一起使用。

如果你自己声明了,那么可以指定自己的版本,并且可以配置自定义的参数。

配置示例

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!-- 是否忽略单元测试 -->
        <skipTests>false</skipTests>
        <!-- 是否忽略执行执行的单元测试 -->
        <testFailureIgnore>true</testFailureIgnore>
        <argLine>${argLine}</argLine>
    </configuration>
</plugin>
  • argLine参数说明
  • jacoco:report-aggregate聚合报告后,覆盖率显示为0,与这个参数有关
  • jacoco在prepare-agent阶段会生成一个属性指向jacoco的runtime agent,默认这个属性叫argLine
  • 需要在maven-surefire-plugin的配置中,引用这个属性

maven-surefire-report-plugin

为单元测试生成html报告,默认位置target/site/surefire-report.html

配置示例

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-report-plugin</artifactId>
    <version>${maven-surefire-report-plugin.version}</version>
    <executions>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

执行mvn test时,会生成报告

效果预览

在这里插入图片描述

jacoco-maven-plugin

用于生成代码覆盖率报告,可以帮助我们了解代码中哪些部分已经被测试覆盖,哪些部分需要更多的测试,默认位置target/site/jacoco/index.html

配置示例

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
            <configuration>
                <!-- 需要修改maven-surefire-plugin插件的<argLine>配置,默认是argLine -->
                <propertyName>argLine</propertyName>
            </configuration>
        </execution>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!--是否使用追加的模式,如果为false,新的报告会替换旧的报告-->
        <append>false</append>
        <!-- rules里面指定覆盖规则 -->
        <rules>
            <rule implementation="org.jacoco.maven.RuleConfiguration">
                <element>BUNDLE</element>
                <limits>
                    <!-- 指定方法覆盖到80% -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>METHOD</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum>
                    </limit>
                    <!-- 指定指令覆盖到80% -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>INSTRUCTION</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum>
                    </limit>
                    <!-- 指定行覆盖到80% -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>LINE</counter>
                        <value>COVEREDRATIO</value>
                        <minimum>0.80</minimum>
                    </limit>
                    <!-- 指定类覆盖到100%,不能遗失任何类 -->
                    <limit implementation="org.jacoco.report.check.Limit">
                        <counter>CLASS</counter>
                        <value>MISSEDCOUNT</value>
                        <maximum>0</maximum>
                    </limit>
                </limits>
            </rule>
        </rules>
    </configuration>
</plugin>

效果展示

在这里插入图片描述

如果覆盖率显示为0,需要修改maven-surefire-plugin插件的配置

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口测试-Mock测试方法

一、关于Mock测试 1、什么是Mock测试&#xff1f; Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取的比较复杂的对象&#xff08;如 JDBC 中的ResultSet 对象&#…

2023年电工杯B题问题二三思路讲解+创新点

问题二三解题思路 1.根据你们对数据的分析结果选取评价指标&#xff0c;从优先级、科学性、可操作性等方面论述其合理性&#xff0c;并构建评价指标体系&#xff1b; 2.建立数学模型&#xff0c;评价人工智能对大学生学习的影响&#xff0c;给出明确、有说服力的结论&#xf…

【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计 【SQL Se…

yolov5环境配置

阅读readme 阅读github上的yolov5的readme的环境配置&#xff0c;举例来说&#xff0c;yolov5_5.0要求如下。 删除原有出错误的环境 conda remove -n env_name --all -y 创建虚拟环境并指定python版本 conda create -n env_name python3.9 安装pytorch 查看显卡驱动 nvid…

​Kali-linux攻击路由器​

前面介绍的各种工具&#xff0c;都是通过直接破解密码&#xff0c;来连接到无线网络。由于在一个无线网络环境的所有设备中&#xff0c;路由器是最重要的设备之一。通常用户为了保护路由器的安全&#xff0c;通常会设置一个比较复杂的密码。甚至一些用户可能会使用路由器的默认…

Fourier分析入门——第10章——直接数据分析

目录 第10章 直接数据分析 10.1 引言 10.2 均值的方向和集中度(Mean direction and concentration about the mean) 10.3 假设检验(Hypothesis testing) 10.4 分组数据(Grouped data)及其与Fourier的关联 10.4.1 分组数据 10.4.2 分组数据与Fourier的关联 10.5 高次谐波…

解决未加载的符号文件

在连接器》命令行里输入&#xff1a;/INCLUDE:?warp_sizecudaatYAHXZ

浅谈智能疏散照明系统在体育场馆中的应用分析

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要&#xff1a;随着经济的发展和科技的进步&#xff0c;人们对电气智能化提出了更高的要求&#xff0c;使得电气智能化系统在智能建筑中的地位越来越重要。本文结合工程实例对体育场馆智能疏散照明系统的设计进行了…

Matlab:神经网络实现手写数字识别

如今人工智能发展的时代,机器学习有着不可或缺的地位,而其中最为突出的模型该属于神经网络。从提出神经网络开始,历经感知机、人工神经网络、BP神经网络、进化神经网络、卷积神经网络、图神经网络等,不断的深入到众多的研究领域中,比如利用神经网络训练参数、图像识别、文…

机试打卡 -12 滑动窗口最大值(优先队列堆)

我的思路1&#xff1a;队列&#xff0c;每次 出队入队&#xff0c;记录1个队列中的最大值索引&#xff0c;超时。。。 class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:nums_lenlen(nums)ans_list[]# 队列长度为kqueuenums[:k]# 队列最大…

基于GeoToolkit/INT实现二维等值线图绘制示例

继续在上一篇文章的基础上&#xff0c;利用相同的数据处理方法统一了地层数据和断层数据格式&#xff0c;本文主要基于GeoToolkit/INT组件&#xff0c;针对地质专业经常用到的地层数据解析和二维等值线&#xff08;等高或等深线&#xff09;可视化需求&#xff0c;本示例实现了…

Sqoop学习笔记

1 简介 Sqoop是Apache下的一款数据传输工具&#xff0c;用于Hadoop和关系型数据库等结构化数据存储之间的数据传输。 最新的稳定版本是1.4.7,Sqoop2 的最新版本是 1.99.7。请注意&#xff0c;1.99.7 与 1.4.7不兼容&#xff0c;且没有特征不完整&#xff0c;也并不打算用于生…

规则引擎入门-基于easy-rules

目录 概念理解实例和编码抽象出2条规则简单的规则引擎事实1的处理事实2的处理 easy-rules 规则的抽象和执行事实描述规则的抽象默认的规则 动态代理执行规则和动作规则的执行&#xff1a;org.jeasy.rules.core.DefaultRulesEngine#doFirepublic class RuleProxy implements Inv…

递归的基本概念

分类&#xff1a; 直接递归 间接递归 如果递归函数中调用递归的语句为最后一个执行语句&#xff0c;则称这种递归为尾递归 递归使用条件 原问题可以划为一个或多个子问题&#xff0c;且子问题的求解方式与原问题相同&#xff0c;只是数量规模不同 递归的调用次…

突破职场难题有效沟通、应对压力、提升能力,实现职场成功

在竞争激烈的职场中&#xff0c;我们经常面临各种职场挑战&#xff0c;例如如何有效沟通、应对工作压力以及提升职业能力等。下面分享一下在职场中的经验&#xff0c;帮助你提升职场技能&#xff0c;实现出色表现&#xff1a; 一、高效沟通&#xff1a; 倾听与理解&#xff1…

5.26~5.27

https://blog.csdn.net/m0_72827793/article/details/130478513 接着之前的内容 32bit.exe为何运行不了&#xff1f; 第一个问题当我运行32bbit.exe 那是因为我编译出的程序时64位的程序 64位程序和32位程序&#xff0c;在编译的时候&#xff0c;具有差异&#xff0c;在32位…

Qt_C++读写M1IC卡源码支持windows国产linux操作系统

Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/智能海报/-淘宝网 (taobao.com) IC卡的特性 1、分为16个扇区&#xff0c;每个扇区为4块&#xff0c;每块16个字节,以块为存取单位&#xff1b; 2、每个扇区有独立的一组密码及访问控制&#xff1b; 3、每张卡有唯一序列号…

HACK ME PLEASE: 1实战演练

文章目录 HACK ME PLEASE: 1实战演练一、前期准备1、相关信息 二、信息收集1、访问网站2、端口扫描2、扫描目录3、访问网站4、访问网站5、扫描目录6、访问网站7、登录MySQL数据库8、查看数据表9、查看users表的内容10、查看tblUsers表内容11、解密12、加密13、修改密码14、查询…

CentOS7.6(Linux)环境下有网和无网安装Docker

1、 服务器有网环境 1.1、手动卸载旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine1.2、安装yum-utils sudo yum install -y yum-utils \device-mapper-per…

项目并行管理指南:如何做好多项目管理?

多项目并行已经是大部分企业的现状&#xff0c;多项目并行同时进行已然是大部分企业的现状&#xff0c;同时管理多个项目是一件具有挑战性的&#xff0c;但是有一些方法和工具可以帮助我峨嵋你有条理地实施项目&#xff0c;提高效率&#xff0c;降低工作压力。 一&#xff0c;设…