怎么使用Jacoco统计服务端代码覆盖率

怎么使用Jacoco统计服务端代码覆盖率,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站-专业网站定制、快速模板网站建设、高性价比秀洲网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式秀洲网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖秀洲地区。费用合理售后完善,10余年实体公司更值得信赖。

1. 前言

 使用 Python + Coverage 来统计测试用例的代码覆盖率

Jacoco 针对 Java 语言的一款开源的覆盖率工具,可以嵌入到 Maven、Gradle 中,提供多种尺度的覆盖率计数器,比如:类覆盖、行覆盖、分支覆盖等

本篇将聊聊服务端代码的覆盖率统计,以 Spring Boot 项目为例,使用 Jacoco + junit 来统计服务端的代码覆盖率

 

2. 准备

首先使用 IDEA 创建一个 Spring Boot 项目( Maven ),以之前 构建 RESTFul API 的项目 代码为基础

怎么使用Jacoco统计服务端代码覆盖率

然后,配置 pom.xml 文件,为当前项目新增 jacoco 依赖 JAR 包




     org.jacoco
     jacoco-maven-plugin
     0.8.5

 

jacoco 版本可以参考:

https://www.eclemma.org/jacoco/index.html
 

接着,配置 Jacoco 插件及相关的 goal,使用 includes 和 excludes 两个关键字设定包含或排除的类路径

比如:这里只统计 com.xingag.api.service 下面的类



    org.jacoco
    jacoco-maven-plugin
    0.8.5
    
        
           
           com/xingag/api/service/*
        

    


    
         
             prepare-agent
             
                  prepare-agent
             

         


         
             check
             
                  check
             

          


          
             report
             prepare-package
             
                 report
             

          

    

 
 

最后,点击右上角的 Maven 同步,下载依赖并配置项目

 

3. 实战一下

首先,编写一段简单的被测代码,根据考试成绩返回不同的结果
//ScoreServiceImpl.java
package com.xingag.api.service;
//被测代码

public class ScoreServiceImpl {

    public String getScoreLevel(int score) {
        String result;
        if (score > 90) {
            result = "优秀";
        } else if (score < 90 && score >= 75) {
            result = "良好";
        } else if (score >= 60) {
            result = "合格";
        } else if (score > 40) {
            result = "不合格";
        } else if (score >= 0) {
            result = "差";
        } else {
            result = "成绩格式不正确";
        }
        return result;
    }
}
然后,在 test 测试文件夹内,  编写测试类和单元测试方法
@RunWith(SpringRunner.class) 、  @SpringBootTest    用于注解测  试类,表明当前类作为一个测试类处理  
//ScoreTests
//测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class ScoreTests {
    ...
}
接着,在测试类中以 Junit 的    @Test    注解定义 3   个单元测试方法  
//ScoreTests.java
//定义测试方法
//成绩优秀
@Test
public void testLevelA() {
   Assert.assertEquals(RESULT_LEVEL[0], scoreService.getScoreLevel(95));
}

//成绩良好
@Test
public void testLevelB() {
   Assert.assertEquals(RESULT_LEVEL[1], scoreService.getScoreLevel(80));
}

//成绩及格
@Test
public void testLevelC() {
   Assert.assertEquals(RESULT_LEVEL[2], scoreService.getScoreLevel(70));
}
最后,在 Terminal 指向项目根目录,输入   mvn test jacoco:report   命令生成代码覆盖率报告
代码覆盖率报告目录在  :./target/site/jacoco

怎么使用Jacoco统计服务端代码覆盖率

用浏览器打开统计报告文件夹中的 index.html 文件,可以很直观的查看单元测试覆盖率及对应测试类的具体覆盖范围

怎么使用Jacoco统计服务端代码覆盖率

看完上述内容,你们掌握怎么使用Jacoco统计服务端代码覆盖率的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网页名称:怎么使用Jacoco统计服务端代码覆盖率
URL地址:http://myzitong.com/article/jossie.html