JaCoCo 代码覆盖率工具(基于Maven+TestNG)
2017-11-29 23:22 虫师 阅读(7346) 评论(1) 编辑 收藏 举报JaCoco是一个代码覆盖率库。
安装:
以 Maven(http://www.testclass.net/maven/) 安装为例:
<dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.9</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
使用:
Maven项目目录如下:
创建被测试类 Count.java
public class Count { /** * 计算并返回两个参数的和 */ public int add(int x ,int y){ return x + y; } /** * 计算并返回两个参数的和 */ public int sub(int x ,int y){ return x - y; } }
代码很简单,这里不做过多解释。
接下来创建测试类CountTest.java。
import org.testng.annotations.Test; import static org.testng.AssertJUnit.assertEquals; public class CountTest { @Test public void testAdd() { Count count = new Count(); int result = count.add(2,2); assertEquals(result, 4); } }
通过TestNG单元测试框架来运行测试用例,注意这里只编写了针对Count类的 add()方法进行测试。
运行:
切换到jacocoTest项目根目录下,执行“mvn install”命令。
查看:
切换到项目下的“\target\site\jacoco\”目录,打开index.html文件。
通过JaCoCo工具分析可以清楚地看哪些代码被执行了,而哪些未被执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)