Maven整合JaCoCo和Sonar,看看你的测试写够了没

本文介绍了如何在项目中整合Maven、JaCoCo和SonarQube,以检测和提高单元测试覆盖率。JaCoCo提供代码覆盖率报告,而SonarQube用于展示和分析这些数据。通过Maven配置,可以设定覆盖范围、规则阈值,并将结果提交到SonarQube进行质量管理。
摘要由CSDN通过智能技术生成

1 简介

单元测试是保证代码质量的重要一环,而如何衡量单元测试写得好不好呢?覆盖率(Coverage)是一个重要指标。而JaCoCo则是专门为Java提供的用于检测测试覆盖率的工具,英文全称为Java Code Coverage

本文将讲解如何在Maven项目中整合JaCoCo,并在SonarQube中展示。SonarQube的安装可以参考这篇文章:

Docker搭建代码检测平台SonarQube并检测maven项目

2 基本概念

这里所讲的覆盖率是指测试代码的覆盖率,这个指标有多种计算方式,如下是比较常用的有:

  • 行覆盖率:执行代码行数 / 总代码行数,判断有多少行代码被测试执行;

  • 类覆盖率:执行的类 / 代码中类总个数;

  • 分支覆盖率:执行的逻辑分支数 / 总的分支数,一般用于检测是不是lf/else都有测试覆盖;

  • 方法覆盖率:执行的方法数 / 代码总方法数,检测是否有方法被遗漏,构造方法也看作为方法。

  • 圈复杂度:用于判断代码结构的复杂程序,JaCoCo不考虑异常处理的分支;一般认为圈复杂度大于10,就存在比较大的风险,严格要求不可大于15。

颜色标识:

JaCoCo会通过颜色来标识代码覆盖情况,使其一目了然。红色表示没有覆盖,绿色表示已经覆盖,黄色表示部分覆盖。

执行方式:

执行JaCoCo有多种方式:

(1)直接通过命令执行:https://www.eclemma.org/jacoco/trunk/doc/agent.html

(2)Ant执行:https://www.eclemma.org/jacoco/trunk/doc/ant.html

(3)Maven执行:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值