Maven工程加入Jacoo生成代码测试覆盖率报告

article/2025/9/28 18:11:33

完整代码Github地址: https://github.com/mgljava/jacoco-demo

Maven:Apache Maven是一个软件项目管理和理解工具。Maven基于项目对象模型(POM)的概念,可以从中心信息管理项目的构建、报告和文档

Jacoco:Java Code Coverage Library

1.创建Maven工程--》不多说。我用的是Intellij IDEA IDE

2.配置maven-compiler-plugin

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.1</version><configuration><skipMain>true</skipMain><skip>true</skip><source>1.8</source><target>1.8</target></configuration>
</plugin>

3.配置Jacoco-maven-plugins

<plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>${jacoco.version}</version><executions><execution><id>prepare-agent</id><goals><goal>prepare-agent</goal></goals></execution><execution><id>report</id><phase>prepare-package</phase><goals><goal>report</goal></goals></execution><execution><id>post-unit-test</id><phase>test</phase><goals><goal>report</goal></goals><configuration><dataFile>target/jacoco.exec</dataFile><outputDirectory>target/jacoco-report</outputDirectory></configuration></execution></executions><configuration><systemPropertyVariables><jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile></systemPropertyVariables></configuration>
</plugin>

4.编写业务代码,这里用作举例,就弄一个简单的计算类

package com.github.mgljava.calc;public class Calculator {public int add(int a, int b) {return a + b;}public int sub(int a, int b) {return a - b;}public int multi(int a, int b) {return a * b;}public int div(int a, int b) {return a / b;}public int switchCase(int a) {switch (a) {case 1:return 1;case 2:return 2;case 3:return 3;default:return 4;}}
}

5.编写测试类

package com.github.mgljava.calc;import static org.junit.Assert.assertEquals;import org.junit.Test;public class CalculatorTest {private Calculator calculator = new Calculator();@Testpublic void should_get_30_when_a_equal_20_and_b_equal_10() {// givenint a = 10;int b = 20;// whenfinal int addNumber = calculator.add(a, b);// thenassertEquals(30, addNumber);}@Testpublic void should_get_18_when_a_equal_20_and_b_equal_2() {// givenint a = 20;int b = 2;// whenfinal int subNumber = calculator.sub(a, b);// thenassertEquals(18, subNumber);}@Testpublic void should_get_6_when_a_equal_3_and_b_equal_2() {// givenint a = 3;int b = 2;// whenfinal int multiResult = calculator.multi(a, b);// thenassertEquals(6, multiResult);}@Testpublic void should_get_5_when_a_equal_10_and_b_equal_2() {// givenint a = 10;int b = 2;// whenfinal int divResult = calculator.div(a, b);// thenassertEquals(5, divResult);}@Testpublic void should_get_1_when_arg_is_1() {// givenint a = 1;// whenfinal int result = calculator.switchCase(a);// thenassertEquals(1, result);}@Testpublic void should_get_2_when_arg_is_2() {// givenint a = 2;// whenfinal int result = calculator.switchCase(a);// thenassertEquals(2, result);}@Testpublic void should_get_3_when_arg_is_3() {// givenint a = 3;// whenfinal int result = calculator.switchCase(a);// thenassertEquals(3, result);}@Testpublic void should_get_4_when_arg_is_4() {// givenint a = 4;// whenfinal int result = calculator.switchCase(a);// thenassertEquals(4, result);}
}

6.运行命令:mvn test ,可以在下图中看到生成的测试报告目录

7.可以在浏览器中看到测试报告:

 


http://chatgpt.dhexx.cn/article/CP9js4E7.shtml

相关文章

Java单元覆盖率工具JaCoCo详细理解和使用(配置+示例)

一、代码覆盖率理解 代码覆盖&#xff08;Code coverage&#xff09;是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。 简单来理解&#xff0c;就是单元测试中代码执行量与代码总量之间的比率。 Java常用的单元测试…

怎么自学C语言 入门

第一阶段&#xff1a;C语言基础 在开始学习C语言基础时&#xff0c;要反问自己为什么学C语言&#xff0c;如何学好C语言。同时要知道什么是C语言以及C语言的发展。 当对这些知识有了一个概念之后&#xff0c;就正式开始学习C语言了&#xff0c;其中&#xff0c;可能会学到数据…

C语言入门03

运算符 流程控制语句

【C语言】C语言入门经典题目(范围广,内容多)

✨作者&#xff1a;小孙的代码分享 ✨专栏&#xff1a;《C语言入门》 ✨送给各位的一句话&#xff1a;空杯心态 才能学到新知 ✨希望大家看完这些题目有所收获&#xff0c;别忘了&#xff0c;点赞评论&#xff01; 目录 前言 &#x1f604; 字符转ASCII码&#x1f525; 判断闰…

C语言入门1:Hello World

C语言入门1&#xff1a;Hello World 1、第一个C语言程序&#xff1a;Hello World&#xff01;&#xff08;1&#xff09;编辑hello.c文件&#xff08;2&#xff09;在hello.c下面编辑如下代码&#xff0c;并保存&#xff08;3&#xff09;编译hello.c文件&#xff08;4&#xf…

C语言入门(1)——Hello World

C语言入门(1)——Hello World 1. 第一个C语言程序&#xff1a;Hello World 开始的第一个程序是一个最简单的程序&#xff0c;也就是最经典的Hello World程序&#xff0c;它的功能为打印出Hello World。程序的内容非常简单&#xff0c;也是C语言编写程序的基本结构框架。 1.示…

c语言入门介绍 Hello, World

相信每一个c语言的初学者的第一个程序都是从 Hello, World! 开始的吧。不过新手刚开始接触&#xff0c;应该有许多不懂的地方&#xff0c;下面我就通过Visual Studio 2019编程环境来简单介绍一下这个程序。 第一句是由于Visual Studio 2019编程环境中scanf函数&#xff08;输入…

C语言入门的三个简易程序

文章目录 一、打印100&#xff5e;200之间的素数方法一&#xff1a;1.思路2.代码如下3.结果图 方法二:1.思路2.代码如下3.结果图 二、打印乘法口诀表1.思路2.代码如下3.结果图 三、输出1000&#xff5e;2000之间的闰年1.思路2.代码如下3.结果图 四、提升 一、打印100&#xff5…

C语言入门 九九乘法表

利用C语言 输出九九乘法表 用双重循环来完成&#xff0c;外循环用变量i控制输出的行数&#xff08;总共九行&#xff09;同时i也是被乘数。 内循环用变量j循还控制列号&#xff0c;同时j也是乘数&#xff0c;规定列号不能大于行号&#xff0c;每一行输出结束后换行。 #inclu…

C语言入门之入门

错误示范 #include<stdio.h> //头文件int mian(void){printf("你好世界&#xff01;"); //标准输出函数&#xff0c;是一个库函数return 0;}上面这个程序是有问题的&#xff0c;第一次写的时候没有运行成功 编译环境是 Visual C2010 查找之后发现是main 写…

C语言入门(初识C语言)

C语言入门&#xff08;初识C语言&#xff09; 前言什么是C语言&#xff1f;为什么选择C语言&#xff1f;计算机语言的发展高级计算机语言中的经典&#xff1a;C语言 初识C语言&#xff08;正片开始&#xff09;一.第一个C语言程序&#xff08;你好&#xff0c;C语言&#xff09…

网络流(一)最大流问题EdmondsKarp和最小费用最大流

一、最大流问题 如下图所示&#xff0c;假设需要把一些物品从结点S&#xff08;称为源点&#xff09;运送到结点t&#xff08;称为汇点&#xff09;&#xff0c;可以从其它结点中转。每条边上的权值&#xff08;左图&#xff09;表示该条路径最多能运送的物品数&#xff0c;右…

最大流,最小费用最大流:解析 + 各种板子

网络流初步 Edmond-Karp算法 网络流的基本概念 源点&#xff0c;这个点只有流量的流出&#xff0c;没有流入。汇点&#xff0c;这个点只有流量的流入&#xff0c;没有流出。容量&#xff0c;每条有向边的最大可承受的流的理论大小。流量&#xff0c;每条有向边的最大可承受的…

分配问题(最小费用最大流)

题目&#xff1a;有 n 件工作要分配给 n 个人做。第 i个人做第 j件工作产生的效益为 。试设计一个将 n件工作分配给 n个人做的分配方案&#xff0c;使产生的总效益最大。 分析&#xff1a;这是一道多解法问题&#xff0c;可以用带剪枝的搜索和图论的最小费用最大流的方法来做&…

最小费用最大流算法 网络流

最小费用最大流算法 图片来源 《趣学算法》 人民邮电出版社 陈小玉 代码实现 /* 参考:《趣学算法》陈小玉 人民邮电出版社 最小费用最大流---最小费用路算法 问题分析:在实际应用中&#xff0c;要同时考虑流量和费用&#xff0c;每条边除了给定容量之外&#xff0c;还定义了一…

网络流----最小费用最大流(EK+SPFA)

先来介绍一下什么是费用流&#xff08;部分内容参考bilibili董晓算法&#xff09; 给定一个网络G&#xff08;V&#xff0c;E&#xff09;&#xff0c;每条边有容量限制w(u,v)&#xff0c;还有单位流量的费用c(u,v)。 当&#xff08;u,v&#xff09;的流量为f(u,v)时&#xf…

【图论】网络流——最大流和最小费用流

【图论】网络流——最大流和最小费用流 文章目录 【图论】网络流——最大流和最小费用流1. 最大流问题1.1 基本概念1.2 寻求最大流的算法&#xff08;Ford-Fulerson&#xff09;1.3 matlab求最大流 2. 最小流问题2.1 基本概念2.2 求最小流的迭代算法2.3 matlab 求最大费用最小流…

网络流(2)-----最小费用最大流(附带讲解SPFA算法)

一.最小费用最大流&#xff08;简称费用流&#xff09;概念 1.什么是费用流问题 上篇文章我们讲解了最大流问题&#xff0c;那什么是最小费用最大流呢&#xff1f;听名字就可以看出&#xff0c;我们要在满足最大流的同时找到达成最大流的最小费用。对于一个网络流&#xff0c…

最小费用最大流问题详解

最小费用最大流问题 一、问题描述 在网络中求一个最大流f&#xff0c;使流的总输送费用最小。 b ( f ) ∑ ( v i , v j ) b i j f i j b(f) \sum\limits_{(v_i,v_j)} b_{ij} f_{ij} b(f)(vi​,vj​)∑​bij​fij​ ) &#xff08; b i j b_{ij} bij​ 表示弧 ( v i , v j…

最小费用最大流问题与算法实现(Bellman-Ford、SPFA、Dijkstra)

摘要 今日&#xff0c;对最小费用最大流问题进行了一个简单的研究&#xff0c;并针对网上的一些已有算法进行了查找和研究。博客和资料很多&#xff0c;但是留下的算法很多运行失败、出错&#xff0c;或者意义不明。这里&#xff0c;个人对其中的Bellman-Ford、SPFA、改进的Di…