首页 > 其他分享 >jacoco覆盖率测试工具

jacoco覆盖率测试工具

时间:2024-02-07 19:44:07浏览次数:39  
标签:报告 覆盖率 代码 生成 test 测试工具 jacoco

简介

jacoco是一个能跑覆盖率的工具,可以把覆盖率结果生成报告,和IDEA自带的覆盖率测试工具类似,eclipse是没有自带覆盖率测试功能的,jacoco可以在maven 执行test周期的时候生成数据,可以作为eclipse覆盖率测试工具,jacoco生成的报告可以和sonaqube,jenkin,gitlab等工具联动,实现代码门禁的效果。

在maven里面使用jacoco

   <!--jaCoCo覆盖率测试依赖-->
    <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.3</version>
    </dependency>

插件依赖

 <!--JaCoCo覆盖率测试工具-->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.11</version>
                <configuration>
                    <!--包含的类-->
                    <includes>
						<!--相对src/main/java下的目录-->
                        <include>com/**</include>
                    </includes>
                    <!-- rules裏面指定覆蓋規則 -->
                    <rules>
                        <rule implementation="org.jacoco.maven.RuleConfiguration">
                            <element>BUNDLE</element>
                            <limits>  
                                <!-- 指定方法覆盖率到50% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>METHOD</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.50</minimum>
                                </limit>
                                <!-- 指定分支覆盖到50% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>BRANCH</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.50</minimum>
                                </limit>
                                <!-- 指定类覆盖到100% -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>CLASS</counter>
                                    <value>MISSEDCOUNT</value>
                                    <maximum>0</maximum>
                                </limit>
                            </limits>
                        </rule>
                    </rules>
                </configuration>
                <executions>
                    <execution>
                        <id>pre-test</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>post-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

生成报告

运行mvn test后会在target\site\jacoco目录下生成报告文件

运行index.html就能看到报告

image-20240207203337258

报告查看

点击index.html查看报告
第一排是Element是包名,点进去是类名,在下面是方法,在点下去是具体代码的覆盖情况,外层包统计的是包类所有数据。
覆盖率测试常用的两个指标,代码行覆盖率和分支覆盖率,一般要求行覆盖率80%,分支覆盖率100%。
代码覆盖率放映测试用例对代码的覆盖情况,和代码质量没有严格的关系,但是可以很大程度避免避免代码缺陷,不管是静态代码检查,还是动态覆盖率,目的都是规范开发流程,劲量避免低级错误。

image-20240207211335258

报告不生成问题

​ 如果pom.xml里面配置了跳过junit测试,那么不会生成报告文件夹


    <!-- 跳过测试 -->
    <properties>
        <!-- 跳过测试,跳过后不会jaCoCo 不会执行 -->         
        <!--<skipTests>true</skipTests>-->

        <!--版本-->
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <!--编译编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

如果生成了报告目录,但是index.html显示No class files specified.

image-20240207203736924

image-20240207170956229

原因是没有找到可以扫描的类,大概是因为配置扫描规则的时候所有类都没匹配上

<!--包含的类,可以不写,不能写错,匹配的src/main/java下面的目录 -->
<includes>
    <include>src/**</include>
</includes>

标签:报告,覆盖率,代码,生成,test,测试工具,jacoco
From: https://www.cnblogs.com/cxygg/p/18011230

相关文章

  • 扒开源安卓性能测试工具moblieperf源码——开发属于你自己的性能稳定性测试工具
    moblieperf下载和使用moblieperf由阿里巴巴开源的Android性能测试工具下载:官方源码地址mobileperfgithub使用:使用pycharm打开下载的项目使用只需要修改配置文件config.conf即可运行采集:a.mac、linux在mobileperf工具根目录下执行shrun.sh;b.windows双击run.bat配置......
  • 如何保障代码覆盖率?它和精准测试有什么关系?
    前言大家好,我是chowley,今天来聊一聊代码覆盖率和精准测试两者之间的关系。在软件开发和测试中,代码覆盖率是一个重要的指标,它可以帮助我们评估测试用例对源代码的覆盖程度。精准测试则注重深入挖掘特定功能或模块的问题。1.了解代码覆盖率的类型在开始之前,让我们先了解几种常见......
  • 测试工具及应用
    JmeterApacheJMeter使用教程  下载、配置和使用,创建线程组、HTTP测试等。Jmeter——数据库压力测试 介绍数据库压力测试,需要根据URL添加响应的驱动包  JMeter连接MySQL 数据库驱动包使用,mysql连接复用   Jmeter数据库压力测试  JMeterPlugins-Extra......
  • 使用IDEA执行单元测试并查看覆盖率
    使用IDEA执行单元测试并查看覆盖率导出会生成多个HTML文件......
  • 感知可视化 测试工具部署
    1、安装Anaconda3-5.3.0-Windows-x86_64.exe时选择加入环境变量这个选项2、安装的位置默认为:C:\Users\Aiper01\Anaconda33、下载规控V2解压后放入C:\Users\Aiper01\Anaconda3\envs目录下4、打开CMD窗口输入命令:conda--version回车输入......
  • SV 覆盖率
    覆盖率分为功能覆盖率和代码覆盖率基于覆盖率驱动的验证技术覆盖率检测可以采用穷举方法或者是随机检测的方法功能覆盖率是根据spec提取出功能点然后定义的功能覆盖率功能覆盖率模型功能覆盖率收敛功能覆盖率数据功能覆盖率数据的归一化和分析代码覆盖率断言......
  • Burp Suite Professional 2024.1.1 for macOS x64 & ARM64 (sysin) - 世界排名第一的
    BurpSuiteProfessional2024.1.1formacOSx64&ARM64(sysin)-世界排名第一的网络渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuiteProfessionalTheworld’s#1webpenet......
  • Burp Suite Professional 2024.1.1 for Windows x64 (sysin) - 世界排名第一的网络渗
    BurpSuiteProfessional2024.1.1forWindowsx64(sysin)-世界排名第一的网络渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-win/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuiteProfessionalTheworld’s#1webpenetration......
  • IPv6 在线测试工具推荐
    IPv6在线测试工具是一个IP协议检测工具,用于测试网站服务器是否支持IPv6协议。同时,检测工具还支持查询IPv6GeoIP地理位置信息。在输入要检测的域名或URL之后,检测工具发出DNS查找请求,获取来自DNS服务器的响应,并进行分析。同时,检测工具还会发出HTTPGET请求,获取来......
  • Cybellum—信息安全测试工具
    产品概述    由于软件和数据在汽车上的使用越来越多,汽车越来越“智能化”,汽车行业面临着重大的信息安全挑战。2021年8月,ISO/SAE21434正式发布,标准中对汽车的信息安全提出了规范化的要求,汽车信息安全不容忽视。     Cybellum是一款信息安全测试与管理工具,帮助汽车OE......