SonarQube中文网站 > 使用技巧 > SonarQube怎么扫描java单元测试 SonarQube java规则

SonarQube怎么扫描java单元测试 SonarQube java规则

发布时间:2025-08-31 08: 00: 00

品牌型号:联想 E550C ThinkPad

系统:Windows 11

软件版本:SonarQube Server 25

保障代码质量是一个系统工程,需要从多个维度构建完善的质量保障体系。在功能验证方面,可以通过编写单元测试用例来确保代码逻辑的正确性,而在代码质量方面,则需要借助SonarQube等代码质量分析工具来识别潜在的代码缺陷。值得注意的是,单元测试同样可以利用SonarQube来扫描获取。那么,SonarQube怎么扫描java单元测试,SonarQube java规则是怎样呢?

一、SonarQube怎么扫描java单元测试

SonarQube对于单元测试的扫描是通过内置的JaCoCo工具或第三方工具来实现,要让SonarQube有效扫描Java单元测试代码,需要进行扫描前的相关配置。

1、在项目中添加JaCoCo插件。以Maven项目为例,需要在“pom.xml”文件中添加下图所示的JaCoCo配置,在项目中安装“jacoco-maven-plugin”插件。

而对于Gradle项目,则无需额外安装JaCoCo插件,因为插件已默认集成到gradle发行版中。

maven加入JaCoCo插件
图1:maven加入JaCoCo插件

2、配置报告路径。登录SonarQube网页端地址“http://localhost:9000”,进入Administration页面,在Configuration项中,点击JaCoCo,在右侧的“sonar.coverage.jacoco.xmlReportPaths”输入框中填写JaCoCo运行后生成的XML报告路径。

设置XML报告路径
图2:设置XML报告路径

3、执行单元测试扫描。在项目根目录下运行终端命令“mvn -Dsonar.coverage.jacoco.xmlReportPaths=步骤2设置的路径 org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Pcoverage”,完成后单元测试的报告结果就会显示在SonarQube项目中。

执行扫描
图3:执行扫描

二、SonarQube java规则

SonarQube为Java提供了丰富的规则,覆盖了从Java 8到最新LTS版本的语法特性,这些规则不仅支持基础的Java SE规范检查,还针对Spring、Hibernate、Android等流行框架提供了专门的检测规则。

1、默认规则。在Rules界面的Language中筛选Java就可以看到Java的全部规则,在下方Tags中还可以筛选规则标签,按照标签对规则分类显示,如下图只显示JUnit的单元测试规则,若要扫描单元测试并确保其代码正确性,需启用这些规则。

内置规则
图4:内置规则

2、自定义规则。Java规则可以通过Java插件来扩充规则数量,对于规则编写的语法,可以在“https://github.com/SonarSource/sonar-java/blob/master/docs/CUSTOM_RULES_101.md”网页上查看,插件依赖于SonarSource Analyzer for Java API,利用API和暴露的接口来编写自定义的Java规则。

自定义Java规则
图5:自定义Java规则

通过本文对SonarQube怎么扫描java单元测试,SonarQube java规则的介绍,我们了解到:要充分发挥SonarQube在Java单元测试扫描方面的价值,首先就要使用Java单元测试规则扫描单元测试代码,其次还需结合SonarQube的JoCoCo功能来获取单元测试覆盖率报告。这种“测试代码质量审查+测试覆盖率监测”的双重机制,既能验证单元测试的有效性,又能评估测试覆盖范围,最终确保核心业务逻辑和关键代码都能得到充分验证,从而全面提升软件质量。

展开阅读全文

标签:

读者也访问过这里:
SonarQube
从一开始就生成高质量的代码
立即购买
最新文章
SonarQube是代码测试工具吗 SonarQube如何配置SAML
软件代码质量管理从以前到现在经历了翻天覆地的变化,从最初的手工代码审查,到自动化测试工具的出现,再到如今SonarQube等综合检测应用的兴起,软件代码检测越来越正规、专业,带来的是软件市场水平整体的提高。并且SonarQube平台后续还支持通过SAML协议单点登录,大大便利了各大企业内部使用,成为如今众多企业进行代码检测的主要工具。那么SonarQube是代码测试工具吗,SonarQube如何配置SAML,接下来一起来了解一下。
2025-09-22
SonarQube分支分析是什么 SonarQube分支扫描配置与差异报告生成方法
在团队协作开发项目中,多分支并行开发已成为常态,每个不同的团队成员各自负责一部分功能或模块开发,最终由团队Leader统一审阅代码并合并分支。在此过程中,如何把控分支代码质量是一项重难点工作,如果全部代码由Leader人为查看,很容易出现错漏,因此常常需要结合SonarQube等带有分支分析的自动化代码检测工具进行。本文将重点向大家说明SonarQube分支分析是什么,SonarQube分支扫描配置与差异报告生成方法,帮助大家解决这一难点。
2025-09-22
SonarQube代码扫描如何启动 SonarQube代码扫描参数配置步骤
SonarQube提供的代码质量检测功能,在当今“两天一个版本”的快节奏开发环境中,已从“锦上添花”变成了“开发必需”,让我们摆脱传统的“先上线再修复”的恶性循环,它能在代码提交后精准捕捉潜在漏洞和安全问题,将质量问题扼杀在萌芽阶段。检测前我们需先启动扫描程序,下面讲解一下SonarQube代码扫描如何启动,SonarQube代码扫描参数配置步骤。
2025-09-22
SonarQube代码扫描显示cwe吗 SonarQube代码扫描怎么手动上传
互联互通的网络时代,安全性成为软件的主要检测项目之一,越多人使用的应用,它的安全性就越需要被保障,因为任何潜在的漏洞都可能被恶意利用,导致数据泄露、服务中断甚至更严重的系统性风险。因此,我们需要使用SonarQube等检测工具,它们既能帮助开发团队在早期发现代码BUG,还能识别CWE标准的安全漏洞。本文将详细回答大家关于SonarQube代码扫描显示cwe吗,SonarQube代码扫描怎么手动上传的疑问,帮助大家提升代码质量与安全等级。
2025-09-22
SonarQube扫描检测不到新代码 SonarQube扫描规则和检查点
SonarQube的代码扫描主要分为旧代码扫描和新代码扫描两部分,并会在报告中清晰呈现新代码与旧代码的对比分析结果,利用新旧代码的区分,帮助我们将注意力更多放在新代码中,而不被历史遗留问题分散注意力。但是,根据SonarQube设置不同,大家可能会遇到新代码未被正确识别或扫描规则和检查点未正确匹配等情况,因此本文将深入探讨SonarQube扫描检测不到新代码,SonarQube扫描规则和检查点的问题,确保大家得到的扫描结果全面可靠。
2025-09-22
SonarQube扫描原理 SonarQube扫描一定要先build么
什么是静态代码分析?静态代码分析指无需运行代码便可通过分析、检查代码的语法、结构、依赖等来检查代码的正确性,SonarQube的代码检测功能正是建立在静态代码分析原理之上。既然是分析静态代码,那SonarQube扫描前需要先编译代码吗?这个问题看似简单,实际涉及SonarQube扫描底层原理。想要获取正确代码检测结果,建议读者一起跟随本文,了解SonarQube扫描原理,SonarQube扫描一定要先build么的问题答案。
2025-09-22

读者也喜欢这些内容:

咨询热线 18015636924