前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UnitTest:maven中使用Jacoco计算代码覆盖率

UnitTest:maven中使用Jacoco计算代码覆盖率

作者头像
测试邦
发布2019-08-09 18:59:14
1.4K0
发布2019-08-09 18:59:14
举报
文章被收录于专栏:测试邦

一、Jacoco 简介

jacoco 官网 https://www.eclemma.org/jacoco/

Jacoco可以嵌入到Ant、Maven中,也可以使用Java Agent技术监控任意Java程序,也可以使用Java Api来定制功能。

Jacoco会监控JVM中的调用,生成监控结果(默认保存在jacoco.exec文件中),然后分析此结果,配合源代码生成覆盖率报告。

二、基于maven的配置jacoco

在pom.xml中添加配置

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.8</version> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile> ${project.build.directory}/coverage-reports/jacoco.exec </destFile> <propertyName>surefireArgLine</propertyName> </configuration> </execution> <execution> <id>default-report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <argLine>${surefireArgLine} -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine> </configuration> </plugin>

<dependency> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.8</version> </dependency>

如果是使用junit 使用以上配置。

如果是testng 需要添加 suiteXmlFile。在testng.xml中添加tastclass

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> <argLine>${surefireArgLine} -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine> </configuration> </plugin>

假设说原本的项目用的是junit 后来改用testng,这时候不需要修改junit的tastcase,只需配testng.xml ,testng可以执行junit的代码。testng.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Converted JUnit suite" > <test name="JUnitTests" junit="true"> <classes> <class name="com.yihu.mybatis.dao.TestProjectNameMapper" /> </classes> </test> </suite>

3、执行测试

mvn clean test

4、测试结果

执行成功后会在target/site目录下生成html覆盖率报告

报告目录

index.html

本文转自:

https://www.jianshu.com/p/f17f06b0b7e1

***往期精彩***:

谈谈测试服务化

基于docker容器技术的测试平台解决方案(dap)

安全测试|移动端安全测试drozer

基于puppeteer的前端性能测试解决方案

解锁自动化测试专栏

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试邦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
手游安全测试
手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档